Linux - Error: Could not find or load main class application.Main

bassdriver

Mitglied
Hallo zusammen 🙂
ich habe mittels Eclipse eine JavaFx Anwendung (test.jar) erstellt. Wenn ich diese unter Windows ausführe, egal ob im "Debugmodus" von Eclipse oder per cmd, funktioniert die Anwendung.
Anschließend habe ich die test.jar auf einem Linux - System hochgeladen und mittels "java -jar test.jar" ausgeführt. Nach kurzer Zeit erscheint jedoch der Fehler "Error: Could not find or load main class application.Main".
Das Package zum einstieg der Anwendung lautet "application" und die Klasse "Main" also ist dies doch eigentlich korrekt. Ich habe nach Recherchen die Vermutung das es am "classpath" liegt, jedoch wüsste ich nicht wieso bzw. was ich dort anpassen sollte.

Hat einer von euch eine Idee?
LG
 
Hallo,
danke für die Hilfestellung.
Jedoch führt dies leider zu keinem Erfolg, eventuell mache ich auch etwas falsch.
Ich habe versucht:
  • Das .jar-File mit java -classpath test.jar aufzurufen
  • In die .bashrc den die Zeile zu ändern export PATH=$PATH:$JAVA_HOME/bin:.
Mache ich eventuell etwas falsch?
 
Hallo 🙂
das .jar-File habe ich im home des pi users abgelegt
vorhin hatte ich dies auch mit export CLASSPATH="." versucht (.bashrc)

Code:
pi@raspberrypi:~ $ java -jar test.jar
Error: Could not find or load main class application.Main
pi@raspberrypi:~ $ echo $CLASSPATH
/home/pi/
 
leider hatte ich damit auch keinen erfolg .. eventuell ist einiges bei Windows und Linux unterschiedlich.
Interessant wird es wenn ich eine Anwendung direkt auf dem Linux Rechner schreibe und anschließen mit "javac" Compiliere ... ich lade jeweils aus dem Eclipse Projekt Verzeichnis aus dem Ordner "build" die jar Datei hoch könnte es auch damit zusammen hängen?
 
Hast du das Projekt mit Maven gebaut? Ich hatte mal öfters das (oder ein ähnliches?) Problem mit Maven und Standalone-Anwendung. Musste dann in der pom.xml eintragen, was die Start-Klasse ist.

Edit: Ok zu spät gelesen, dass du unter Windows das per CMD ausführen kannst. Kann also nicht daran liegen.
 
Hallo 🙂

Code:
java -version
openjdk version "1.8.0_40-internal"
OpenJDK Runtime Environment (build 1.8.0_40-internal-b04)
OpenJDK Zero VM (build 25.40-b08, interpreted mode)

es liegt nicht zwingend am Raspberry auch Ubuntu (auf einer VM) hat gleiche Probleme (nur in deutsch 😀)
Code:
java -jar test.jar
Fehler: Hauptklasse application.Main konnte nicht gefunden oder geladen werden
 
Aber um das mit dem JavaFX auszuschliessen kannst du dir schnell eine "Hello World"-Jar machen die ansonsten die gleiche Struktur (Package, Main-Klasse) hat (auf Windows erstellen!) und den gleichen Aufruf auf deinem Linux mal probieren.
 
für mich hört sich das so an, als würde im manifest die Main datei fehlen.
Dagegen spricht dass es auf Windows ja funktioniert und der Entry-Point application.Main ja genau der richtige ist

Edit: wenn das fehlen würde sieht die Fehlermeldung so aus:

D:\temp>java -jar test.jar
kein Hauptmanifestattribut, in test.jar
 
Zuletzt bearbeitet:
Hallo,

kannst du mir vielleicht sagen, ob du bereits eine Lösung gefunden hast? Ich hänge nun schon über 12 Stunden daran dieses Problem zu lösen... Ich hab jeglichen StackOverflow thread durch und nichts davon hat geholfen / entspricht genau meinem Problem.

Ich wäre dir sehr dankbar!
 
Auch OpenJDK? Ich würde wie @X5-599 auf fehlendes JavaFX tippen...

OracleJDK nutzen oder OpenJFX installieren dürfte dann helfen, wäre aber interessant zu wissen, ob's der TO hinbekommen hat?
 
Ich weiß, der Thread ist schon alt, aber das Problem hat sich ja noch nicht gelöst.
Ich habe nämlich genau dasselbe problem, allerdings nicht auf dem PI, sondern auf einem Nativen Ubuntu System.
 
java -version gibt mir
Code:
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM(build 35.131-b11, mixed mode)
wieder.

Die genaue Fehlermeldung lautet:
Code:
Hauptklasse application.Main konnte nicht gefunden oder geladen werden
 
OpenJDK oder OracleJDK? Wenn ersteres, dann musst du noch OpenJFX aus dem Paketquellen nachinstallieren. Beim zweiteren würde ich auch auf ein fehlerhaftes Manifest, oder so, tippen.
Ich entwickle im Prinzip exklusiv JavaFX auf Ubuntu, indem ich das OracleJDK nutze. Probleme gibt es da für mich nur mit der Media-API.
 
HotSpot ist Oracle, wenn ich mich nicht täusche. Wie sieht die Struktur deines JARs aus? Manifest und sind alle .class-Files dort, wo sie hingehören?
 
Ich habe heute früh Ubuntu komplett neu aufgesetzt (hatte mit dem Prozessor - vor kurzem auf ryzen gewechselt - auf einmal Probleme).
Wieder OracleJDK installiert, und jetzt läuft alles wunderbar 🙂
Aber danke für die Informationen, die man am Rande bekommen hat.
 

Zurück
Oben