2015-11-04 192 views
0

我正在制作一个2D游戏,我编译成了一个.jar文件来测试它是否有效。 当与java -jar命令运行jar文件,我得到以下错误:Java -jar错误:无法找到或加载主类

Error: Could not find or load main class com.grizeldi.splatoon.Main 

我知道这里有很多的解决方案上StackOveflow,但我已经尝试更新的java,用-cp搞乱......毫无效果至今。

代码:github repo

帮助的人?编辑1:我有我的代码在一个USB棒,但我已经尝试将其移动到C:和D:但没有任何工作。 EDIT2:我在github上添加了.jar。

+0

是的,我的清单是好的。主类属性在那里。 – grizeldi

+0

罐子的内容是什么? ('unzip -l'或'jar -t') – Kenney

+0

在jar的根目录下是META-INF和com的地图。在COM然后有其他包。 – grizeldi

回答

1

的方法之一是更新清单与类路径中的其他罐子:

Class-Path: lib.jar 

另一种方法是添加你的主要罐子取决于你的主罐子罐子的内容,所以你只有一个jar文件。请确保您不要将罐子本身添加到主罐子中,因为嵌套罐子无法工作。

当处理本地库(.so.dll)时,只需将它们放在与jar相同的目录中即可。这个缺点是你有多个文件。 在这种情况下,只需添加启动脚本(.sh,.bat),指定Main路径的类路径和类名以及-Djava.library.path即可。

还有另一种方法:在运行时从jar中提取本地库,将其保存到临时位置并显式加载它。有关更多信息,请参阅here

+0

我有一个文件夹中的所有jar(libs + splatoon2D.jar)。应该这样做吗? – grizeldi

+0

-jar文档说当它被使用时,-cp被忽略我认为 – grizeldi

+0

我不这么认为;如果我运行'java',它会显示'...或java [-options] -jar jarfile'。如果你想要jar文件中的所有东西,你必须解压缩这些库并将这些内容添加到jar中。 – Kenney

相关问题