Avatar billede pnr Nybegynder
23. april 2003 - 13:58 Der er 20 kommentarer og
1 løsning

Problemmer med at starte applikation fra dos

Jeg har problemmer med at starte min java applikation fra dos.

Når jeg står i rod biblioteket af min appliaktion skriver jeg:

java -cp . Main

I rod bibioteket ligger de packages jeg bruger. Det hele virker fint hvis jeg afvikler det fra KAwa
Avatar billede arne_v Ekspert
23. april 2003 - 13:58 #1
Hvilken fejl får du ?
Avatar billede arne_v Ekspert
23. april 2003 - 13:59 #2
Normalt er det et spørgsmål om at angive evt. jar-filer i classpath:

java -classpath .;C:\dir\noget.jar Main
Avatar billede pnr Nybegynder
23. april 2003 - 14:07 #3
Jeg får følgende fejl:

Exception in thread "main" java.lang.NoClassDefFoundError: main (wrong name: Mai
n)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
Avatar billede arne_v Ekspert
23. april 2003 - 14:10 #4
Det lyder som du har skrevet:
  java ... main
i stedetfor:
  java ... Main
Avatar billede arne_v Ekspert
23. april 2003 - 14:11 #5
Klassenavne er case-sensitive.
Avatar billede pnr Nybegynder
23. april 2003 - 14:23 #6
det var da første del. nu er problemmet bare jeg jeg bruger den apache Http ting som jeg også skal have levet en class path til, men hvorda gør jeg det?
Avatar billede arne_v Ekspert
23. april 2003 - 14:28 #7
java -classpath .;C:\et-eller-andet-dir\et-eller-andet-navn.jar Main
Avatar billede pnr Nybegynder
23. april 2003 - 20:18 #8
Det virker ikke rigtig for mig, jeg har skrevet følgende:
C:\Documents and Settings\Administrator\Dokumenter\Java\app>java -classpath .;httpclient\commons-httpclient.jar
;httpclient\lib\commons-logging.jar; -cp Main
Avatar billede arne_v Ekspert
23. april 2003 - 20:30 #9
-classpath og -cp er synonymer.

Prøv med:

java -classpath .;httpclient\commons-httpclient.jar;httpclient\lib\commons-logging.jar Main
Avatar billede pnr Nybegynder
24. april 2003 - 06:37 #10
Nu virker det. Jeg har lavet en bat fil som starter min aplikation, men vil den altid starte en comandoprompt i baggrunden?
Avatar billede arne_v Ekspert
24. april 2003 - 09:43 #11
Til nogle formål vil man lave en BAT-fil med:

java -classpath .;httpclient\commons-httpclient.jar;httpclient\lib\commons-logging.jar Main

men hvis du vil have noget mere "Windows-look-and-feel", så laver
du et shortcut til:

C:\j2sdk1.4.1_02\bin\javaw.exe -classpath .;httpclient\commons-httpclient.jar;httpclient\lib\commons-logging.jar Main

[bemærk: javaw ikke java]
Avatar billede pnr Nybegynder
24. april 2003 - 10:35 #12
Jeg takker endnu engang mange gange!!!
Avatar billede pnr Nybegynder
30. april 2003 - 14:08 #13
Nu har jeg 5 classpath og de kan ikke stå i den "genvej", hvad gør jeg så?
Avatar billede arne_v Ekspert
30. april 2003 - 14:13 #14
Hvad mener du med at de ikke kan stå i genvej ?

Mig bekendt kan classpath være tusinder af tegn lange - du kan bare ikke
nødvendigvis se det hele når du taster det ind.
Avatar billede pnr Nybegynder
30. april 2003 - 14:20 #15
Under destination i genvej kan der stå :

java -classpath .;httpclient\commons-httpclient.jar;httpclient\lib\commons-logging.jar Main

+ lidt mere, og så kan jeg ikke indtaste mere
Avatar billede arne_v Ekspert
30. april 2003 - 14:30 #16
Jeg prøvede lige på Windows 2000.

Det er korrekt at man ikke kan indtaste så meget i "create shortcut wizard",
men når man bagefter går ind i properties på shortcur, så kan man godt
lave dem meget længere.

Hvorfor ? Aner det ikke - spørg Bill !
Avatar billede pnr Nybegynder
30. april 2003 - 14:34 #17
Det kan jeg ikke få lov til på min win2000
Avatar billede c-sharp Nybegynder
30. april 2003 - 14:35 #18
C:\j2sdk1.4.1_02\bin\javaw.exe -classpath .;httpclient\commons-httpclient.jar;httpclient\lib\commons-logging.jar;C:\Programmer\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;C:\Programmer\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserve Main

også kan der ikke stå mere :-(
Avatar billede arne_v Ekspert
30. april 2003 - 14:55 #19
Jeg prøvede lige. Man kan indtaste mere i properties end i wizard, men
der er også en begrænsning.

Surt show.

Forslag till workarounds:

1)  indret directory-strktur så classpath bliver kortere
2)  brug global CLASSPATH variabel (jeg er ikke glad for det, men ...)
3)  lav en jar fil og brug classpath i manifest
Avatar billede pnr Nybegynder
30. april 2003 - 15:03 #20
Takker
Avatar billede arne_v Ekspert
30. april 2003 - 15:08 #21
NB: Et godt tips - undgå mellemrum i stier med jar-filer. Det kan
give mange sære fejl.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester