Running jar file returns error: Error: Could not find or load main class MyClass Caused by: java.lang.ClassNotFoundException: MyClass
Running jar file returns error: Error: Could not find or load main class MyClass Caused by: java.lang.ClassNotFoundException: MyClass
我有几个 .class 文件,我想将其转换为一个 .jar 文件。这是 jar 文件的清单:
MANIFEST.MF:
Main-Class: Server
这是我用来编译文件的命令:
jar cfm Server.jar META_INF/MANIFEST.MF ../server/Server.class ../server/message/User.class ../server/message/ServerNode.class ../server/message/ServerHub.class ../server/message/Chattype.class ../server/message/Chat.class
最后是我的文件夹结构:
message-platform -
dist -
META-INF -
MANIFEST.MF
server -
Server.class
message -
User.class
ServerNode.class
Chat.class
ServerHub.class
Chattype.class
这是我收到的错误消息:
Error: Could not find or load main class Server
Caused by: java.lang.ClassNotFoundException: Server
这是我执行 .jar 文件的方式:
java -jar Server.jar
使用 Atom 检查 jar 文件时,出现:
有人可以帮我解决这个问题吗?谢谢
更新:
我创建了服务器包,现在一切正常。感谢所有试图提供帮助的人。
包名称是 名称 class 的一部分。 server.Server
不是 Server
。我想你想要前者,而不是后者。变化
Main-Class: Server
到
Main-Class: server.Server
不确定如何完全解决此问题,但我认为这与您的 IDE 的 class 路径配置有关。确保它使用的是标准 JDK 并且所有来源等都已正确链接。也许尝试使用 class 路径选项 -cp(尽管大多数 IDE 会为您处理)。例如:
java -cp /home/User/where/my/jar/is -jar example.jar
老实说,我只是在做一些 android 开发(在 JVM 本身上运行)时才遇到这个问题,所以我只是提出建议。希望你能弄明白!
你说过你的 Server.class 不属于任何包,如果是这样,你的 Server.class 不应该在 jar 文件中的服务器文件夹下。如果您想在项目结构中将服务器文件夹视为 'src' 文件夹,请使用“-C”选项,例如:
jar cfm Server.jar manifest.txt -C server Server.class
对于 server/message 下的所有其他 class 文件,您应该执行类似的操作。
我有几个 .class 文件,我想将其转换为一个 .jar 文件。这是 jar 文件的清单:
MANIFEST.MF:
Main-Class: Server
这是我用来编译文件的命令:
jar cfm Server.jar META_INF/MANIFEST.MF ../server/Server.class ../server/message/User.class ../server/message/ServerNode.class ../server/message/ServerHub.class ../server/message/Chattype.class ../server/message/Chat.class
最后是我的文件夹结构:
message-platform -
dist -
META-INF -
MANIFEST.MF
server -
Server.class
message -
User.class
ServerNode.class
Chat.class
ServerHub.class
Chattype.class
这是我收到的错误消息:
Error: Could not find or load main class Server
Caused by: java.lang.ClassNotFoundException: Server
这是我执行 .jar 文件的方式:
java -jar Server.jar
使用 Atom 检查 jar 文件时,出现:
有人可以帮我解决这个问题吗?谢谢
更新: 我创建了服务器包,现在一切正常。感谢所有试图提供帮助的人。
包名称是 名称 class 的一部分。 server.Server
不是 Server
。我想你想要前者,而不是后者。变化
Main-Class: Server
到
Main-Class: server.Server
不确定如何完全解决此问题,但我认为这与您的 IDE 的 class 路径配置有关。确保它使用的是标准 JDK 并且所有来源等都已正确链接。也许尝试使用 class 路径选项 -cp(尽管大多数 IDE 会为您处理)。例如:
java -cp /home/User/where/my/jar/is -jar example.jar
老实说,我只是在做一些 android 开发(在 JVM 本身上运行)时才遇到这个问题,所以我只是提出建议。希望你能弄明白!
你说过你的 Server.class 不属于任何包,如果是这样,你的 Server.class 不应该在 jar 文件中的服务器文件夹下。如果您想在项目结构中将服务器文件夹视为 'src' 文件夹,请使用“-C”选项,例如:
jar cfm Server.jar manifest.txt -C server Server.class
对于 server/message 下的所有其他 class 文件,您应该执行类似的操作。