Java - COde ausführen



  • Hallo, ich habe ein kleines Programm geschrieben, welches aus 2 .java Dateien in einem Package besteht.
    Wenn ich in eclipse auf ausführen klicke funktioniert auch alles bestens.

    Was muss ich aber tun, wenn ich das manuell erreichen will?

    Also ich habe 2 .java Dateien in einem Ordner, wie geht es weiter?

    Wenn ich

    cd path to .java
    javac *.java
    java Main
    

    eingebe kommen Beschwerden

    Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: vps/Main)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    java.lang.ClassLoader.loadClass(ClassLoader.java:321)                           sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)                   java.lang.ClassLoader.loadClass(ClassLoader.java:266)                                                                             
    Could not find the main class: Main. Program will exit.
    

    Und nochwas: Wenn ich ein Runnable jar mit Eclipse erstellt habe, ist dass dann Architektur-unabhängig (32 oder 64bit)?



  • shisha schrieb:

    eingebe kommen Beschwerden

    Exception in thread "main" java.lang.NoClassDefFoundError: Main ([b]wrong name: vps/Main[/b])
    

    Und nochwas: Wenn ich ein Runnable jar mit Eclipse erstellt habe, ist dass dann Architektur-unabhängig (32 oder 64bit)?

    Ja.



  • Du musst die package Hirachie einhalten, dass heißt wenn "Main" deine Klasse ist, in der sich die public static void main Funktion befindet und diesem ist in einem package (sagen wir "test" in Ermangelung dieser Information) dann muss dein Ordner in dem die .java liegt "test" heißen und im übergeordneten Ordner führst du aus: test.Main.
    So sollte es funktionieren. Grundlegend ist jedes package in java physikalisch im Dateisystem abgebildet als Ordner.


Anmelden zum Antworten