我的本地目录中有一个 .class 文件,由以下 jasmin 代码组装而成:
.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 文件,但我无法使用 java default_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:好的,我终于弄清楚出了什么问题!类名必须以大写开头!这解决了我的问题!无论如何,感谢所有试图帮助我的人!