从 IntelliJ 运行 JavaFX 应用程序

2024-05-27

Versions

openjdk版本“11.0.11”2021-04-20

OpenJDK 运行时环境 (build 11.0.11+9-Ubuntu-0ubuntu2.20.10)

OpenJDK 64 位服务器虚拟机(内部版本 11.0.11+9-Ubuntu-0ubuntu2.20.10,混合 模式、共享)

IntelliJ IDEA 2021.1.2(终极版)构建#IU-211.7442.40,已构建 2021 年 5 月 31 日

JavaFX SDK 11.0.2

嘿伙计们,首先我想说这个问题以前有人问过here https://stackoverflow.com/q/51478675/13306171我按照正确答案给出的所有步骤进行操作,但最终出现此错误:

Exception in Application start method java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x6c5aff76) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x6c5aff76
    at com.sun.javafx.fxml.FXMLLoaderHelper.<clinit>(FXMLLoaderHelper.java:38)
    at javafx.fxml.FXMLLoader.<clinit>(FXMLLoader.java:2056)
    at KiloConverter.start(KiloConverter.java:12)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)

我是 Java 的初学者,我正在为大学课程做这个项目。我可以构建应用程序,但无法运行它。就像我说的,我按照之前答案给出的所有步骤进行操作,但无济于事。

如果可能的话,请不要像我看到的那样告诉我“阅读基础知识”其他人之前回答过 https://stackoverflow.com/q/55432836/13306171。我只是不确定为什么我的代码不能在我的最终项目中运行。

提前非常感谢!


既然您提到您是 Java 初学者,我首先建议您阅读此问答:什么是堆栈跟踪?如何使用它来调试应用程序错误? https://stackoverflow.com/questions/3988788/what-is-a-stack-trace-and-how-can-i-use-it-to-debug-my-application-errors。然后,当您回顾堆栈跟踪时,您会发现遇到的基本错误是:

Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x6c5aff76) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x6c5aff76

这是与模块相关的错误。您可能想阅读了解 Java 9 模块 https://www.oracle.com/corporate/features/understanding-java-9-modules.html熟悉模块。

在这种情况下,会发生错误,因为javafx.fxml在类路径上找到模块,而javafx.graphics在模块路径上找到模块。换句话说,javafx.fxml模块无法解析为命名模块但它的代码仍然可以在未命名模块。这打破了资格exports并合格opens指令javafx.graphics可以给予javafx.fxml结果是IllegalAccessError.

您需要确保javafx.fxmlmodule实际上被解析为一个模块。至少有两种方法可以做到这一点:

  1. Include javafx.fxml在你的--add-modulesJVM 参数。

  2. 通过添加一个使您的代码模块化module-info.java file:

    // or whatever you want to name your module
    module app {
      requires javafx.controls;
      requires javafx.fxml;
    
      // export your Application subclass's package to at least javafx.graphics
      exports com.example.app to javafx.graphics;
    
      // open your FXML controller package(s) to at least javafx.fxml (allows reflective access)
      opens com.example.app.controllers to javafx.fxml;
    }
    

    并将您的应用程序作为模块启动。例如,在命令行上如下所示:

    java --module-path <path> --module <module>/<main-class>
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 IntelliJ 运行 JavaFX 应用程序 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 最有用的用户制作的 C 宏(在 GCC 中,还有 C99)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • AngularJs:当放置在 ng-view 标签内时,ng-include 不起作用

    我正在通过 ng view 内的角度路线加载 html 页面 我正在加载的页面包含一个 ng include 标签 指向 另一个 html 文件 我尝试了以下所有语法 div src div div div div src include
  • Grep 模式匹配用双引号括起来的小写字符串

    我在 grep 方面遇到了一些问题 我似乎无法弄清楚 我试图在一组源文件中搜索用双引号 C 字符串 括起来的小写单词的所有实例 使用 bash 和 gnu grep grep e a z cpp 没有给我任何匹配项 而 grep e a z
  • 如何检索 JQuery 数据表的排序状态

    我对 JQuery Datatables 还很陌生 我正在尝试检索有关数据表的两个信息 当前正在对哪个列索引进行排序 也称为选择 排序顺序 升序或降序 不知道我应该如何解决这个问题 使用 jquery 查找列索引 或者 Datatables
  • 用什么? MVC、MVP 或 MVVM 还是……?

    我将启动一个 Java 项目来开发桌面应用程序 使用什么作为表示层模式 MVC MVP MVVM 或 如果可能的话 举一些可行的小例子 Actually the ultimate post you re looking for is thi
  • iOS Facebook SDK - 远程定义 FacebookAppID

    使用iOS Facebook SDK 3 0 需要在应用程序的info plist中定义FacebookAppID和相关的URL Scheme 我想远程定义这些 向我自己的服务器请求应用程序 ID 所以有两个不同的问题 我可以在运行时更改应
  • XCode 4.3.2 SDLMain.o 中的 SDL 未定义符号

    我已经开始尝试在 Xcode 4 3 2 中使用 SDL 因此我启动了 Mac OS X 的 Cocoa 应用程序并连接了我的所有框架 OpenGL SDL 等 我没有 SDL Image SDL Mixer 等 我需要这些吗 当我尝试编译
  • 是否可以将 mongodb 与 sqlalchemy 一起使用?

    我在中找不到任何有关连接 mongodb 的信息sqlalchemy 的文档 http docs sqlalchemy org en latest 和谷歌搜索 是否可以将 mongodb 与 sqlalchemy 一起使用 谢谢 根据 sq
  • Rails 和 Ember 的 JSONAPI 强参数

    我将 Ember 与 ember data 和 Rails api 一起使用 我有一个 createRecord 和 save 来保存工作正常的记录 用于在 Rails 中创建记录的发布请求的网络选项卡中的有效负载如下所示 data att
  • 为什么 Angular takeuntil ngUnsubscribe 之前有一个“下一步”?

    有大量关于使用 takeUntil 运算符取消订阅流的信息 如下所示 export class CategoryOptionInputComponent constructor private svc MyService protected
  • 如何替换 TabAdapter 中选项卡之一的片段?

    虽然我意识到嵌套片段不是一个选择 但我仍然有一个问题 我根本无法找出答案 我正在使用 ActionBarSherlock 的 FragmentsTabPager 示例创建一个界面 在该界面中可以通过滑动而不是单击选项卡来翻阅选项卡 我的问题
  • openpyxl:为一系列 Excel 单元格分配值或应用格式而不进行迭代

    我想应用特定格式或为一系列 Excel 单元格分配一个值 而不需要迭代每个单元格 我目前正在使用这个脚本 from openpyxl import Workbook from openpyxl styles import Font wb W
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • WordPress 类别链接 get_category_link(id)

    我需要链接到我的 WordPress 网站中的一个类别 下面的代码在某种程度上可以工作 我的问题是它在网址中包含 category 这不是我的永久链接结构的设计方式 有谁知道在它输出的 url 中包含 category 的方法吗 我不明白你
  • 左右 mac“命令”键的配置不同吗?

    我想知道是否可以将右侧的 mac 命令 设置为像 ctrl 键一样 但保留左侧 命令 键的默认功能 谢谢 有一个非常棒的应用程序 称为 Ukelele 免费 不幸的是 它无法区分左右命令键 然而 我最近发现了一个更好的应用程序 名为 Con
  • didDeselectRowAtIndexPath indexPath 为 nil

    我有一个表视图控制器 它实现了 TableView 委托方法 public override func tableView tableView UITableView didSelectRowAtIndexPath indexPath NS
  • 写入 Windows 7“预览”窗口区域

    如何使用 C 将控件写入或绘制到 Windows 7 预览区域 作为我正在讨论的示例 请在 Windows 7 中打开 Windows Media Player 并播放一首歌曲 播放歌曲时 最小化 Windows Media Player
  • 使用搜索模式 '...\**\TEST-*.xml 找不到测试结果文件

    我正在 TFS Nunit 加带有适配器的 Visual Studio 中运行测试 并且我已设置构建定义如下 构建成功但没有生成测试结果文件 TFS 是否写入此 Xml 文件 日志 2017 02 08T08 08 40 8151428Z
  • 需要同步仅增量计数器吗?

    我使用整数作为计数器 该整数只会增加 并且肯定有多个线程会同时增加它 当没有其他线程尝试访问其值时 在程序执行结束时读取该计数器的值 我假设我不必为这种仅增量计数器使用锁或任何类型的同步 这是正确的吗 如果这有什么区别的话 我用 Java
  • 从 IntelliJ 运行 JavaFX 应用程序

    Versions openjdk版本 11 0 11 2021 04 20 OpenJDK 运行时环境 build 11 0 11 9 Ubuntu 0ubuntu2 20 10 OpenJDK 64 位服务器虚拟机 内部版本 11 0 1