当前位置: 首页 > 知识库问答 >
问题:

转换后的Maven Project文件的JavaFx InvocationTargetExc0019

郎吉星
2023-03-14

最近,我尝试在Eclipse的JavaFx Maven项目中使用添加图片到标签。如果我在Eclipse中运行应用程序,一切正常,不会发生错误。

这篇文章不同于“为什么相对路径在JAR文件中的JAVA中不起作用?”邮递我尝试了这篇文章的解决方案,但对我来说不起作用。我在下面描述了这一点。

如果我从Linux终端运行应用程序,比如java-jarmyapplication。jar发生以下错误:

Exception in Application start method
java.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)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$412(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: src/pictures/forms_logo_2_1.png (Datei oder Verzeichnis nicht gefunden)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at de.elastic.client.Main.pane1(Main.java:193)
    at de.elastic.client.Main.start(Main.java:259)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$419(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$399(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$203(GtkApplication.java:139)
    ... 1 more
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));

我还试图直接给图像类图像图像=新的图像(图像乌尔);。这在以前的项目中对我有效。

我还尝试了Image Image=newimage(getClass()。getResourceAsStream(imageUrl)) 但是eclipse在这里抛出错误无法从类型对象对非静态方法getClass()进行静态引用。

关于这一点,我还尝试了imageimage=newimage(Main.class.getResource(imageUrl))。toExternalForm() 。对我来说,它只能以这种方式执行,没有错误。

更新:我也试过这个:

ClassLoader classLoader1 = Main.class.getClassLoader();
String ImgUrl1 = classLoader1.getResource("path/picture.png").toExternalForm();
        
Image image = new Image(ImgUrl1);
Label img1 = new Label();
img1.setGraphic(new ImageView(image));

它抛出与上述相同的错误。

更新:好的,看来可执行JAR文件不匹配,无法找到图片和其他数据本身。例如,图片位于图片文件夹中,而应用程序在图片文件夹中找不到它。所以这是一个参考问题。因为我把它转换成了maven项目也许结构不对。我将尝试创建一个新的maven项目,并将结果发布在这里。

因为这些都是我发现的将图片导入标签的常用方法,所以我有点沮丧。我希望有人能解决这个小问题。干杯


共有1个答案

令狐功
2023-03-14

我自己找到了解决办法。maven项目的文件系统和代码安排存在问题。使用[右键单击]中的eclipse功能时出错

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

 类似资料:
  • 标题说明了一切: null 编辑:工作示例要简单得多(多亏了@T.S.): 谢谢!

  • 我在使用FFmpeg进行acc编码时遇到问题。我有带aac音频的au mp4文件。我试图用ffmpeg复制音频。在源mp4文件中,第一个音频噪声出现在0.30秒。转换后使用,生成的文件错误,第一个音频噪音出现在0.32秒。文件的持续时间也不一样。 当我强制编码器libfaac,它的工作,但文件太大。 那么,为什么使用默认编码器(aac、libfdk_aac)时它不工作呢?请注意,当我从audaci

  • 我正在使用OCRA将我的rb文件转换为exe文件。脚本运行正常,它还创建了一个exe文件。但是,当我将exe文件发送给一个用户运行(在他的系统中没有安装ruby)时,他会在exe运行之间遇到以下错误…Windows找不到Rubyw。请确保键入的名称正确,然后再试一次。要搜索文件,请单击开始按钮,然后单击搜索。.. 以前有人面对过这个问题吗? 谢谢

  • 问题内容: 我有一个.mwb格式的数据库。我想在日食中使用它,所以我需要将其转换为.sql格式。如果有人知道如何使用任何工具来做到这一点。我认为我的sql工作台可以做到这一点,但不知道该怎么做。 问题答案: 在菜单中单击“数据库”,然后单击“正向工程”(快捷键CTRL + G)。 更新: 您的.mwb文件是专有格式,还包含Workbench中图形表示的信息。生成的.sql文件是一个脚本,您的MyS

  • 我用APKTool反向设计了一个Android应用程序,得到了一个。Smali文件作为源代码输出。我转换了。Smali文件和应用程序。Java文件。我成功地编辑了。Java文件,但现在我想把它们转换回。这样我就可以用新的重新编译应用程序了。Smali文件。当我离开的时候。Java文件,它没有重新编译,并给出了一些错误。我找不到任何关于编译的信息。Java到。所以我希望你们能帮我。 提前谢谢你。