我有一个使用 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
更新:我已经明确将其范围缩小到仅被我的机器检测到的本地人,这可能是由于我安装了一些东西。也许我错过了什么?