Hallo,
ich bin noch relativ neu in Java eingestiegen und habe jetzt ein kleines Problem:
Ich habe meine ersten Programme per Kommandozeile kompliert und ausgeführt, das hat soweit alles funktioniert.
Jetzt habe ich mit NetBeans ein kleines HelloWorld Programm geschrieben:
Java:
package helloworld;publicclassMain{/**
* @param args the command line arguments
*/publicstaticvoidmain(String[] args){System.out.println("Hello World!");}}
Mit dem Run-Button in NetBeans funktioniert das. Dann habe ich mal versucht, die Datei manuell zu kompilieren:
PFAD: javac Main.java
java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: hel
loworld/Main)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Main. Program will exit.
Ich habe jetzt alles zu dem Thema durchgelesen, was ich finden konnte, leider hat irgendwie nichts geholfen. Ich glaube, ich habe da auch grundsätzlich irgendwas falsch verstanden. Witzigerweise passiert das nur mit Dateien, die ich mit NetBeans erstellt habe. Woran genau liegt das?
du musst es mit [c]javac helloworld/Main.java[/c] kompilieren und mit [c]java helloworld.Main[/c] aufrufen. Die Ordnerstruktur muss dabei korrekt sein (Ordner = Java-Package).
Mh, ich hätte schwören können, das hätte ich auch schon versucht...
Naja, vielen Dank jedenfalls.
Ähnliches Problem: Ich habe die Datei jetzt mit NetBeans probeweise mal als .jar gepackt. Wenn ich das jetzt ausführen (mit der javaw.exe unter Windows), spuckt die mir auch "Could not find the main class: PFAD\dist\helloworld.jar. Program will exit" aus.
PFAD\dist java helloworld.jar gibt entsprechend die Fehlermeldung aus meinem ersten Post aus.
PFAD\dist java -jar helloworld.jar funktioniert allerdings.
Aber man kann .jar-Dateien doch normalerweise einfach per Doppelklick starten. Und das funktioniert bei eben nicht. Ich möchte ja nicht jedes Mal über die Konsole gehen.
Habe ich schon. .jar-Dateien sind mit der javac.exe verknüpft (stimmt doch?).
Für andere .jar Dateien funktioniert das jedenfalls. Für meine eigenen nicht. Egal ob mit oder ohne GUI.
also dem eben beschriebenen pfad im explorer nachgehen. Dann hast du einen Dialog mit allen Dateiendungen. Dort wählst du jar aus und klickst auf erweitert. Dort gehst du beim fettgedruckten vorgang auf bearbeiten und trägst bei anwendung für diesen vorgang das ein was ich im vorherigen post geschrieben habe.
Hm, ich benutze Windows7, da gibts diesen Tab nicht mehr und ich finde grade irgendwie keine Möglichkeit, das zu ändern.
Aber dann ist das kein Java-Problem mehr. Irgendwie kriege ich das raus.
Vielen Dank für die Hilfe.
Wäre natürlich trotzdem super, wenn jemand wüsste wie man in Windows7 hinbekommt.