Minha aplicação roda no Gel mas não roda pelo DOS

4 respostas
M

quando executo minha aplicação pelo GEL aparece:

C:jdk1.5injava.exe -classpath “C:SiaPJWEB-INFlibgxclassd.jar;C:SiaPJWEB-INFlibjtds-0.8-rc1.jar;C:genexusGXJavaWinDATA002swt.jar;C:genexusGXJavaWinDATA002;C:genexusGXJavaWinDATA002” ugxre004

e funcina perfeitamente, mas quando coloco este comando num bat ou tento rodar pelo DOS com

java -classpath C:SiaPJWEB-INFlibgxclassd.jar;C:SiaPJWEB-INFlibjtds-0.8-rc1.jar;C:genexusGXJavaWinDATA002swt.jar;C:genexusGXJavaWinDATA002;C:genexusGXJavaWinDATA002 ugxre004

não roda…

Exception in thread main java.lang.NoClassDefFoundError

at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1412)

at org.eclipse.swt.graphics.Device.init(Device.java:540)

at org.eclipse.swt.widgets.Display.init(Display.java:1436)

at org.eclipse.swt.graphics.Device.<init>(Device.java:96)

at org.eclipse.swt.widgets.Display.<init>(Display.java:306)

at org.eclipse.swt.widgets.Display.<init>(Display.java:302)

at com.genexus.uifactory.swt.SWTUIFactory.<init>(SWTUIFactory.java:73)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at com.genexus.uifactory.UIFactory.<clinit>(UIFactory.java:104)

at com.genexus.ui.FocusManager.<clinit>(FocusManager.java:77)

at com.genexus.ui.GXWorkpanel.<init>(GXWorkpanel.java:252)

at ugxre004.<init>(ugxre004.java:55)

at ugxre004.main(ugxre004.java:21)

4 Respostas

M

comeu as barra...........

quando executo minha aplicação pelo GEL aparece:

C:jdk1.5injava.exe  -classpath "C:SiaPJWEB-INFlibgxclassd.jar;C:SiaPJWEB-INFlibjtds-0.8-rc1.jar;C:genexusGXJavaWinDATA002swt.jar;C:genexusGXJavaWinDATA002;C:genexusGXJavaWinDATA002" ugxre004

e funcina perfeitamente, mas quando coloco este comando num bat ou tento rodar pelo DOS com

C:jdk1.5injava.exe  -classpath "C:SiaPJWEB-INFlibgxclassd.jar;C:SiaPJWEB-INFlibjtds-0.8-rc1.jar;C:genexusGXJavaWinDATA002swt.jar;C:genexusGXJavaWinDATA002;C:genexusGXJavaWinDATA002" ugxre004

não roda....

Exception in thread "main" java.lang.NoClassDefFoundError
        at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1412)
        at org.eclipse.swt.graphics.Device.init(Device.java:540)
        at org.eclipse.swt.widgets.Display.init(Display.java:1436)
        at org.eclipse.swt.graphics.Device.<init>(Device.java:96)
        at org.eclipse.swt.widgets.Display.<init>(Display.java:306)
        at org.eclipse.swt.widgets.Display.<init>(Display.java:302)
        at com.genexus.uifactory.swt.SWTUIFactory.<init>(SWTUIFactory.java:73)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at java.lang.Class.newInstance0(Class.java:340)
        at java.lang.Class.newInstance(Class.java:293)
        at com.genexus.uifactory.UIFactory.<clinit>(UIFactory.java:104)
        at com.genexus.ui.FocusManager.<clinit>(FocusManager.java:77)
        at com.genexus.ui.GXWorkpanel.<init>(GXWorkpanel.java:252)
        at ugxre004.<init>(ugxre004.java:55)
        at ugxre004.main(ugxre004.java:21)
M

colocando no bat duas linhas, uma entrando na pasta com as classes e os jar e a outra executando o programa funciona…

cd C:|genexus|GXJavaWin|DATA002
java -classpath gxclassr.zip;jtds-0.8-rc1.jar;swt.jar; uwkp01

mas eu preciso que o comando seja de uma linha e provavelmente os .jar e as classes vão estar em caminhos na rede…

M

consegui resolver…

na pasta tinha outros pacotes e acho que ele estava procurando lá pela classe errada… so não entendi ainda pq no gel funcionou…

T

Você pode escrever uma batch mais ou menos como:

@ECHO OFF
SETLOCAL
SET JAVA_HOME=C:\JDK1.5
SET GENEXUS_JAVA=C:\genexus\GXJavaWin\DATA002
SET CLASSPATH=%GENEXUS_JAVA\%gxclassr.zip
SET CLASSPATH=%CLASSPATH%;%GENEXUS_JAVA%\jtds-0.8-rc1.jar
SET CLASSPATH=%CLASSPATH%;%GENEXUS_JAVA%\swt.jar
%JAVA_HOME%\bin\java -classpath %CLASSPATH% uwkp01 
ENDLOCAL

Isso deve funcionar no Windows XP, 2000, 2003, mas não no 98/ME. Nessas versões do Windows não existe SETLOCAL/ENDLOCAL, e o tamanho de uma variável de ambiente é muito pequeno, a menos que você mexa no CONFIG.SYS. Mas a idéia está aí.

Criado 27 de outubro de 2004
Ultima resposta 27 de out. de 2004
Respostas 4
Participantes 2