gpt4 book ai didi

java - CLASSPATH 启动一个简单的本地类文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:45 26 4
gpt4 key购买 nike

我的本​​地目录中有一个 .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

编辑2:好吧,我终于知道出了什么问题了!类名必须以大写开头!这解决了我的问题!不管怎样,感谢所有试图帮助我的人!

最佳答案

您通常会想要:

java -cp . NameOfClassWithMainMethod

运行当前目录中的单个类文件。然而,如果你仔细阅读你的堆栈跟踪,你会发现Java已经找到了你的主类和主方法,但找不到其他东西。从你发布的代码中,我看不到什么。

正在运行

java -verbose:class ......

可能会说明情况,就像可以使用调试器来观察类加载器的工作和运行一样。就像使用 strace 来查看它正在尝试打开哪些文件一样。

关于java - CLASSPATH 启动一个简单的本地类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14181928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com