Köra Java-program i terminalfönstret

Permalänk
Medlem

Köra Java-program i terminalfönstret

Ja alltså, det går inte.

Det fungerar att kompilera programmet enligt följande

javac ClassFileServer.java, och det fungerade utmärkt, d.v.s. filen skapas korrekt.

Sedan när jag ska köra så skrev jag först

java ClassFileServer

men det gick inte, så jag sökte efter en lösning. Där skrev någon att man skulle ha med mappen som filen ligger i, enligt följande;

java Testing.ClassFileServer

Detta fungerade dock inte heller. Nu vet jag inte vad jag ska göra...

Sökvägen för min fil är /home/***/workspace/Testing/src, där *** egentligen är mitt namn. Dessutom glömde jag posta felmeddelandet, vilket kommer nedan.

java -classpath . ClassFileServer Exception in thread "main" java.lang.NoClassDefFoundError: ClassFileServer Caused by: java.lang.ClassNotFoundException: ClassFileServer at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Could not find the main class: ClassFileServer. Program will exit.

Jag kör Ubuntu med bash som shell.

/lol4reN

Permalänk

Pröva java /home/***/workspace/Testing/src/ClassFileServer.class

Visa signatur

i7 6700k
Asus GTX 980Ti Strix
16 GB DDR4

Permalänk
Medlem

Du måste "alltid" ange vart dina klasser ligger som du ska använda.

Kör du java-kommandot från samma klass som din class-fil ligger i (och du inte använder paket i dina klasser) så kan du använda följande kommando:

java -classpath . ClassFileServer

punkten betyder att klasserna finns i din aktuella katalog.

//C

Permalänk
Medlem
Skrivet av conio:

Du måste "alltid" ange vart dina klasser ligger som du ska använda.

Kör du java-kommandot från samma klass som din class-fil ligger i (och du inte använder paket i dina klasser) så kan du använda följande kommando:

java -classpath . ClassFileServer

punkten betyder att klasserna finns i din aktuella katalog.

//C

Detta fungerade inte. Se även mitt redigerade första inlägg.

.class-filerna ligger i samma mapp som .java-filerna som jag kompilerade.

Kan det ha något att göra med koden i filerna, att den är fel på något vis? Detta är i så fall konstigt, eftersom jag har kopierat koden från Javas hemsida; ClassFileServer och ClassServer

Permalänk
Medlem
Skrivet av lol4reN:

Detta fungerade inte. Se även mitt redigerade första inlägg.

.class-filerna ligger i samma mapp som .java-filerna som jag kompilerade.

Kan det ha något att göra med koden i filerna, att den är fel på något vis? Detta är i så fall konstigt, eftersom jag har kopierat koden från Javas hemsida; ClassFileServer och ClassServer

Är din klass public?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Är din klass public?

Jag har inte ändrat något av de som står i de länkade klasserna, och där är de vad jag kan se publika.

Permalänk
Medlem
Skrivet av Teknocide:

Är din klass public?

Eller är det något mer man måste tänka på, än att klassen jag kopierade ifrån är public. Kan tilläggas att jag inte är en hejare på programmering...

Permalänk
Medlem
Skrivet av lol4reN:

Eller är det något mer man måste tänka på, än att klassen jag kopierade ifrån är public. Kan tilläggas att jag inte är en hejare på programmering...

Sorry, såg inte dina länkar (trots att jag citerade dem).
Det ska fungera som det är. Testade att dra ner och kompilera och körde igång utan problem med "java ClassFileServer". Jag kör linux mint debian edition. Kör JRE 1.7.0.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Sorry, såg inte dina länkar (trots att jag citerade dem).
Det ska fungera som det är. Testade att dra ner och kompilera och körde igång utan problem med "java ClassFileServer". Jag kör linux mint debian edition. Kör JRE 1.7.0.

Kan det vara något i Ubuntu 11.10 som inte fungerear? För, det skall la inte vara några problem med det shell som jag använder?

Är det något annat program jag saknar? Hur vet jag om jag har "rätt" Java-version?

Permalänk
Medlem
Skrivet av lol4reN:

Kan det vara något i Ubuntu 11.10 som inte fungerear? För, det skall la inte vara några problem med det shell som jag använder?

Är det något annat program jag saknar? Hur vet jag om jag har "rätt" Java-version?

java -version resp. javac -version, men det ser verkligen ut att vara ett classpath-problem. Bara så jag förstått dig rätt, du ställer dig i samma dir som dina .java-filer, skriver javac ClassFileServer och sedan java -cp . ClassFileServer, allt från samma directory?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av lol4reN:

Kan det vara något i Ubuntu 11.10 som inte fungerear? För, det skall la inte vara några problem med det shell som jag använder?

Är det något annat program jag saknar? Hur vet jag om jag har "rätt" Java-version?

Ubuntu 11.10 här.
javac/java version: 1.7.0_02
Kan skapa class-filerna och sedan köra igång ClassFileServer, ungef enligt syntax som....

Skrivet av Teknocide:

java -version resp. javac -version, men det ser verkligen ut att vara ett classpath-problem. Bara så jag förstått dig rätt, du ställer dig i samma dir som dina .java-filer, skriver javac ClassFileServer och sedan java -cp . ClassFileServer, allt från samma directory?

..Teknocide skrev här:
Skapa klassfiler:

javac ClassFileServer.java

Köra igång ClassFileServer:

java -cp . ClassFileServer 8989 ~/javatest/