次のjasminコードからアセンブルされた.classファイルがローカルディレクトリにあります。
.class public default_class
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit locals 10
.limit stack 10
invokestatic main_65428301()I
return
.end method
.method public static main_65428301()I
.limit locals 10
.limit stack 10
ldc "foobar"
astore_0
iconst_0
ireturn
.end method
java -jar jasmin.jar test.jを実行すると、すべてがコンパイルされ、.classファイルが取得されますが、次のエラーが発生するため、javadefault_classで開始できません。
Exception in thread "main" java.lang.NoClassDefFoundError:
at default_class.main(test.j)
Caused by: java.lang.ClassNotFoundException:
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more
私のJAVA_HOMEは次のとおりです。
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
クラスパスには、現在のディレクトリ(この.classファイルが配置されている場所)のみが含まれます。何か追加する必要がありますか?
編集:クラスを起動するために使用するコマンドはjava default_class
EDIT2:OK、ついに私は何が悪かったのか理解しました!クラスの名前は大文字で始める必要があります!これで私の問題は解決しました!とにかく、私を助けようとした皆さんに感謝します!