我的Jar文件无法打开,而解决问题的动机正在消逝

时间:2018-12-24 14:13:47

标签: java intellij-idea javafx jar jar-signing

抱歉,标题太烂了。

自2月份以来,我一直在用Java开发游戏,并随着时间的流逝自学。最近,我使用Java FX在地牢搜寻器上工作了一个多月,我对结果感到非常满意。实际上,我对游戏感到非常满意,因此决定将其发布到我的Game Jolt帐户中,该帐户以前曾用于生产我在Visual Basic中制作的游戏。

我经历了在Intellij IDEA中将.jar文件构建为工件的过程,最终生成了一个。但是,当我尝试运行该文件时,它开始打开,但随后崩溃了。我什至无法弄清为什么即使在通过控制台翻遍寻找错误后都无济于事(我使用的是Mac),并且尝试在我在房子周围发现的PC上打开罐子后,我仍然得出结论,这是一个错误与应用程序。我很快发现我没有对jar进行签名,从而导致安全错误,因此我经历了尝试进行自我签名的过程。当我尝试执行那个时,它起作用了,但是罐子仍然无法打开。

很明显,我的应用存在潜在的问题,需要解决。我不知道从哪里开始寻找东西,主要是因为我已经尝试过几次创建新文件,包括Hello World应用程序,但没有一个程序能够正常运行。

所以here's the entire project.

如果您想浏览一下并指出正确的方向,我将不胜感激,并在我的Game Jolt页面上赞扬您。这让我头疼了太久了,我将放弃并学习一种新的血腥语言。请帮忙,我们将不胜感激。

真诚地,一个15岁的Java爱好者只想生产一个该死的地牢爬行者fgs。

更新:按照@AndreyAkhmetov的建议,我从清单文件中删除了类路径。但是不幸的是,在尝试启动该应用程序时,我仍然没有打开任何东西。希望对大家有帮助。感谢到目前为止的反馈!

1 个答案:

答案 0 :(得分:0)

我做了pull request来解决您的游戏;)。

您的问题是如何加载资源。您可以使用Maven组织项目和资源。它有助于使您的项目平台独立且易于共享。 您应该使用以下结构:

Crawler /
    src /
        main/
           java/
           resources/
               Images/ 
pom.xml

pom.xml 是一个配置文件,您的所有资源(如图像)都位于 resources文件夹中。然后,您可以使用以下代码加载它:

InputStream loadimg = Main.class
            .getClassLoader()
            .getResourceAsStream("Images/chest.png");
chest.setImage(new Image(loadimg));

还应将加载保存文件的目录从此c\\...更改为./saved.txt。然后可以从任何地方执行jar。

要创建工件,您可以

$ mvn package

或者,如果您使用的是Intellij,请在侧栏中单击Maven,然后单击生命周期和软件包。 这样会创建一个目标文件夹,其中包含jar,您可以通过单击它或使用此命令查看控制台错误来执行它。

java -jar Crawler.jar

尝试从Main类中拆分组件,该类太大,难以阅读和理解。 好游戏,祝你好运!