为了账号安全,请及时绑定邮箱和手机立即绑定

转换后的 Maven 项目中文件的 JavaFx InvocationTargetException

转换后的 Maven 项目中文件的 JavaFx InvocationTargetException

万千封印 2022-05-21 19:51:52
最近我尝试在 Eclipse 中的 JavaFx Maven 项目中使用将图片添加到标签。如果我在 Eclipse 中运行该应用程序,一切正常并且不会发生错误。这篇文章不同于:“为什么相对路径在 JAR 文件中的 JAVA 中不起作用?” 邮政!我尝试了这篇文章的解决方案,但它对我不起作用。我在下面描述了这一点。如果我从 Linux 终端运行应用程序,java -jar myapplication.jar则会出现以下错误:Exception in Application start methodjava.lang.reflect.InvocationTargetException    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)Exception running application de.elastic.client.Main我将错误定位在图片的文件导入中。对于导入,我使用了以下代码:FileInputStream input = new FileInputStream("path/picture.png");Image image = new Image(input);Label img1 = new Label();img1.setGraphic(new ImageView(image));我还尝试将 imageUrl 直接提供给 Image 类,例如Image image = new Image(imageUrl);. 这在我以前的项目中有效。我也尝试过Image image = new Image(getClass().getResourceAsStream(imageUrl));,但这里 eclipse 抛出了错误Cannot make a static reference to the non-static method getClass() from the type Object。关于这一点我也试过了Image image = new Image(Main.class.getResource(imageUrl).toExternalForm();。对我来说,它只能以这种方式执行而不会出错。
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我自己找到解决方案。maven项目的文件系统和代码的排列有问题。错误是在[right click] > configure > convert to maven project. 这导致程序的文件系统中缺少一些文件夹。现在可以简单地引用文件。

解决方案是创建一个新的 Maven 项目并从旧项目中迁移所有内容。比它对我有用。干杯!


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信