Java 我的Jar文件赢了';我没有打开,我解决这个问题的动机正在消失

Java 我的Jar文件赢了';我没有打开,我解决这个问题的动机正在消失,java,intellij-idea,javafx,jar,jar-signing,Java,Intellij Idea,Javafx,Jar,Jar Signing,很抱歉这个糟糕的标题 从二月份开始,我就一直在用Java制作游戏,边做边教自己。最近,我使用JavaFX在一个地下城爬虫上工作了一个多月,我对结果非常满意。事实上,我对这个游戏非常满意,所以我决定将它发布在我的game Jolt帐户上,我以前用它制作我用Visual Basic制作的游戏 我经历了在Intellij IDEA中作为工件构建.jar文件的过程,最终生成了一个。然而,当我试图运行该文件时,它开始打开,但随后崩溃。我不明白为什么,即使在我的控制台中翻找错误,但毫无结果(我使用的是Mac

很抱歉这个糟糕的标题

从二月份开始,我就一直在用Java制作游戏,边做边教自己。最近,我使用JavaFX在一个地下城爬虫上工作了一个多月,我对结果非常满意。事实上,我对这个游戏非常满意,所以我决定将它发布在我的game Jolt帐户上,我以前用它制作我用Visual Basic制作的游戏

我经历了在Intellij IDEA中作为工件构建.jar文件的过程,最终生成了一个。然而,当我试图运行该文件时,它开始打开,但随后崩溃。我不明白为什么,即使在我的控制台中翻找错误,但毫无结果(我使用的是Mac电脑),并且在我在家里找到的一台PC上尝试打开jar后,我断定这是应用程序的错误。我很快发现我没有在jar上签名,导致了一个安全错误,所以我经历了尝试自我签名的过程。当我试着这么做时,它成功了,但罐子还是打不开

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

所以

如果你们中的任何人想看一看,并为我指出正确的方向,我将不胜感激,并在我的游戏颠簸页面上感谢你们。这让我头疼的时间太长了,我打算放弃,学习一门新的血腥语言。请帮忙,我一直很感激

诚恳地说,一个15岁的Java爱好者,他只想制造一个该死的地牢爬虫,fgs

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

我已为您的游戏制作了一个补丁;)

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

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

InputStream loadimg = Main.class
            .getClassLoader()
            .getResourceAsStream("Images/chest.png");
chest.setImage(new Image(loadimg));
您还应该将加载保存文件的目录从
c\\…
更改为
/saved.txt
。然后可以在任何地方执行jar

要创建工件,您可以执行以下操作

$ mvn package
或者,如果您正在使用Intellij,请在侧栏中单击Maven,然后单击lifecycle和package。 这将创建一个包含jar的目标文件夹,您可以通过单击它或使用此命令来执行它,以查看控制台错误

java -jar Crawler.jar
试着把你的组件从你的主类中分离出来,它太大了,很难阅读和理解。
比赛不错,祝你好运

请不要在你的问题中使用代码。可能您的构建有问题-您可以将上面问题中的代码发布到构建脚本中吗?当您尝试运行代码时,会出现什么错误?当前在mobile上,因此无法真正进行测试,但引用计算机上绝对目录的类路径看起来有点可疑。您能从Manifest.MF文件中删除它,尝试构建jar,然后报告吗?另外,请提供一些关于您实际构建JAR所采取的步骤的信息,包括您正在使用的任何命令、IDE或其他构建工具。我已经克隆了您的repo,但它没有运行。请包括它像图像一样运行所需的所有资源。从您链接的代码来看,似乎有许多
catch
块可以简单地吞掉异常。其中之一可能是问题的根源,但我们不知道,因为您至少不记录异常。这是从文件系统加载映像的众多问题之一。这意味着要运行您的程序,您需要一个“Images”文件夹,其中包含jar文件旁边的图像。最好将它们作为资源读取(例如使用
newimage(“Images/dead.png”)
)并将Images文件夹放入src文件夹中