我有一个使用lwjgl和slick-util的java游戏。它在我的电脑上完美运行,但不适用于任何其他人。它装在一个罐子里。我使用Eclipse创建了jar,并使用Jarsplice密封了本机和库。基本Jar文件夹仅包含包目录和本机,没有清单或类路径。游戏本身不是Applet。
从我的电脑,这个jar工作并完美地运行游戏。与其他任何人一样,只要在主代码中调用Display类就会崩溃(留下一个带有基本java名称和图标以及灰色内部窗口的空框架)。我已经打包了32位和64位本机,并在32位和64位Windows系统上进行了测试,但运行它的唯一一个是我的(Windows 32位)。
jar在基本文件夹中没有类路径或清单。
我在运行jar之前重命名了我的eclipse构建引用文件夹,包括natives文件夹,它仍然有效。我没有其他地方的本地人。
这是jar中的META-INF / MANIFEST.MF。请注意,当我删除Main-Class行时,jar在我的计算机上不起作用。被引用的类在Jar中。
Manifest-Version: 1.0
Launcher-VM-Args:
Launcher-Main-Class: processors.Main
Main-Class: org.ninjacave.jarsplice.core.JarSpliceLauncher
这是jar中的目录结构:
META-INF
org
game packages including processors
all the natives.dll
更新:我肯定已将其缩小到只能被我的机器检测到的本地人,可能是因为我安装了一些东西。也许我错过了什么?
答案 0 :(得分:1)
我通过将资源,jar和本机一起打包到zip文件中解决了这个问题。 Java会自动选择jar所在的文件夹来查找本机和资源。