2

我有一个使用 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

更新:我已经明确将其范围缩小到仅被我的机器检测到的本地人,这可能是由于我安装了一些东西。也许我错过了什么?

4

1 回答 1

1

我通过将我的资源、jar 和 native 打包到一个 zip 文件中来解决了这个问题。Java 会自动选择 jar 所在的文件夹以查找本地对象以及资源。

于 2011-10-27T20:03:18.670 回答