首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX模块不会导出到未命名的模块

在Java 9及更高版本中,引入了Java模块系统(JPMS),它允许将代码组织成模块,并控制模块之间的依赖关系

要解决这个问题,请按照以下步骤操作:

  1. module-info.java文件中,确保导出所需的包。例如,如果您有一个名为com.example.myapp的包,您需要将其导出:
代码语言:javascript
复制
module com.example.myapp {
    exports com.example.myapp;
}
  1. 如果您的JavaFX应用程序使用了第三方库,请确保这些库也是模块化的。如果它们不是模块化的,您需要将它们添加到--add-exports--add-opens命令行选项中。例如,如果您的应用程序依赖于org.apache.commons.csv库,您需要在运行应用程序时添加以下命令行选项:
代码语言:javascript
复制
java --add-exports javafx.controls/javafx.scene.control=sun.java2d.ui JavaFXApp
  1. 如果您的JavaFX应用程序使用了JavaFX SDK,请确保在构建和运行应用程序时包含了正确的模块路径。例如,如果您使用的是Maven,您需要在pom.xml文件中添加以下配置:
代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>17.0.0.1</version>
    </dependency>
</dependencies>
  1. 在运行JavaFX应用程序时,确保使用了正确的模块路径。例如:
代码语言:javascript
复制
java --module-path /path/to/javafx-sdk-17.0.0.1/lib --add-modules javafx.controls,javafx.fxml -m com.example.myapp/com.example.myapp.MainApp

请根据您的实际情况修改上述示例中的路径和模块名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你不得不会的python常用内置模块--timerandom

由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。...%d 一个月中的第几天(01 - 31) %H 一天中的第几个小时(24小时制,00 - 23) %I 第几个小时(12小时制,01 - 12) %j 一年中的第几天(001 - 366) %m 月份...(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 %w 一个星期中的第几天(0 - 6,0是星期天) %W 和%U基本相同,不同的是%W以星期一为一个星期的开始。...一般这个时候就会出现了,如果没有点一下tab键,,会显示random下的方法,点是必须的 今天就到这,帮忙点个在看再走 ?...附完整的Python代码)(上) ● 详解Python中的可哈希对象与不可哈希对象(二) ● Python高效编程之itertools模块详解 ● Python 核心设计理念27个问题及解答 ?

48920
  • JavaFX 11发行说明

    重要变化 运行JavaFX应用程序 既然JDK不再包含JavaFX,则必须明确包含应用程序使用的JavaFX模块。有关说明,请参阅JavaFX 11入门页面。...默认情况下,独立的javafx模块不再具有权限 javafx.* 模块现在由应用程序类加载器加载,默认情况下不再具有权限。...,javafx.swing,javafx.controls javafx.swing模块依赖于JDK 11中新的jdk.unsupported.desktop模块,必须通过该--bind-services...中的版本号是错误的 其他 JDK-8195799 在javafx模块中使用系统记录器而不是平台记录器 其他 JDK-8195800 消除对javafx模块中sun.reflect.misc的依赖 其他...web JDK-8195804 从java.base删除未使用的合格sun.net.www导出到javafx.web web JDK-8196011 从JFXPanel应用程序使用WebView时发生间歇性崩溃

    6.7K60

    面试时,遇到不会做的题咋办?(附每个模块下的高频面试题)

    所以这个时候,如果你前面和面试官聊的很开心,那么题目可能就是一个常见的简单题,比如反转链表,二叉树的层序遍历等。...没有那么夸张,因为面试时我们遇到的算法题,多是我们做过的经典题目。很少有没做过的题目,即使有新题,大多也是根据原来的题改编而成,只要稍微修改一下即可。...(也是为了贴合第一条,后面会单独写一篇文章) 3.让面试官看懂你的代码逻辑,因为可能你做题的方法和他的方法不一致,所以写代码时,可以简单加些注释,和口头解释,让他能够看懂你的思路。...也可以按照企业题库刷,那些常考的题目多刷几遍,来回刷。 另外再给大家推荐一个好用的刷题网站,Acwing ,刷题模式为 ACM 模式,更能锻炼你的代码能力。...) 排序相关 快速排序 归并排序 堆排序 数组中的第K个最大元素 这一块考的还挺多,甚至还有公司考过归并排序的迭代法,不过咱们小屋也有具体可以看这个文章 今天说的是必须要熟练掌握的归并排序 一个快速排序写了快

    91220

    抖音二面:为什么模块循环依赖不会死循环?CommonJS和ES Module的处理有什么不同?

    /a'),尝试导入a模块,发现已有a模块的缓存,所以不会进入执行,而是直接取a模块的缓存,此时打印{ a: '原始值-a模块内变量' }, exports.b = '修改值-b模块内变量 执行,将b模块的缓存中变量...CommonJS通过模块缓存来解决:每一个模块都先加入缓存再执行,每次遇到require都先检查缓存,这样就不会出现死循环;借助缓存,输出的值也很简单就能找到了。...循环引入 和CommonJS一样,发生循环引用时并不会导致死循环,但两者的处理方式大有不同。...ES Module来处理循环使用一张模块间的依赖地图来解决死循环问题,标记进入过的模块为“获取中”,所以循环引用时不会再次进入;使用模块记录,标注要去哪块内存中取值,将导入导出做连接,解决了要输出什么值...,已经有的则不会进入执行,在模块缓存中还记录着导出的变量的拷贝值; ES Module借助模块地图,已经进入过的模块标注为获取中,遇到import语句会去检查这个地图,已经标注为获取中的则不会进入,地图中的每一个节点是一个模块记录

    1.9K10

    JavaFX 11 发布,与 JDK 拆分后的首个正式大版

    由于 JavaFX 库被写成了 Java API,因此 JavaFX 应用程序代码可以调用各种 Java 库中的 API,例如 JavaFX 应用程序可以使用 Java API 库来访问本地系统功能并且连接到基于服务器中间件的应用程序...JavaFX 可以自定义程序外观,CSS 将外观和样式与业务逻辑实现进行了分离,因此开发人员可以专注于编码工作。值得注意的是,从 JDK 11 开始,JavaFX 模块与 JDK 分开提供 。...此次更新主要内容如下: 重要更新: JavaFX 模块指定:因为 JDK 不再包含 JavaFX,那么必须明确包含应用程序使用的 JavaFX 模块,详情见:https://openjfx.io/openjfx-docs...javafx.* 模块现在由应用程序类加载器加载,默认情况下不再具有权限。...想要在启用安全管理器的情况下运行的应用程序需要使用“-Djava.security.policy”指定自定义策略文件,并为每个 javafx.* 模块授予所有权限。

    2.4K40

    JAVAFX(一) java Module 模块化简介

    前言 看过小刀最近朋友圈的小伙伴应该都知道, 最近小刀在写一个桌面的工具包, 可以连k8s, 可以做图床等等, 其中用到的技术栈就是 jdk14+javaFX....JDK14(Module)+javaFx JDK14(Module) 选用JDK14 , 主要是因为其中的jpackage命令, 这个命令可以帮我们把java程序打包成win中的exe , 打包成mac...了. javaFX java身为一个跨平台语言,我们对其更多直观的感受是在win/mac 上写了一个springboot的程序, 然后丢到win/linux服务器上去运行....踩的想砸电脑.....) java Module 模块化和非模块化的区别,在代码的体现上就是module-info.java的区别 ?...: 我们这个模块(模块名: red.lixiang.tools.sunflower) 需要javafx.controls和javafx.fxml模块 opens: 主要是反射使用,javafx.fxml

    2.5K10

    Java 9 揭秘

    当次要版本号增加时,该元素不会重置。 给定​​major​​​的​​ 以下规则适用于版本号: 所有元素必须是非负整数。...javafx.controls jdk.javaws java.jnlp javafx.deploy jdk.jsobject java.scripting javafx.fxml jdk.localedata...如果它在类路径中找到类,它将作为其未命名模块的成员加载该类。 如果在类路径中找不到类,则抛出​​ClassNotFoundException​​异常。...如果找不到类,它将通过命令行选项​​-Xbootclasspath/a​​指定的文件和目录列表进行搜索。 如果它在引导类路径上找到一个类,它将作为其未命名模块的成员加载该类。...因此,一旦了解​​ClassLoader​​​使用的资源加载过程,将不会在使用​​Class​​类的方法时遇到问题。

    7410

    JDK 9 中有哪些 jmod 文件?

    ├── javafx.controls.jmod ├── javafx.deploy.jmod ├── javafx.fxml.jmod ├── javafx.graphics.jmod ├── javafx.media.jmod...「在没有模块化的Java中,“模块”的单位基本上就是“JAR包”。...但是JAR包并不适用于模块,因为它: 不保护内部实现(外部代码有许多办法可以探索到JAR包的内部实现,包括反射) 不声明对外部的依赖 没有版本号」 「Jigsaw所引入的模块,从设计上可以堵住反射API...的某些漏洞——模块是一种比较“坚固”的隔离机制。...一个模块只能看到别的模块所导出的符号,而无法看到其私有的符号。这么一来,应用层面的Java代码就无法通过反射调用JDK里一些比较敏感的方法了。」

    1.9K40

    Java 9的模块系统到底怎么用

    模块的结构 Java 模块可以由一个或者多个在一起的 Java 包组成。...最后在创建的包下编写你的Java类文件即可。 创建模块规则 创建模块也必须遵守下面的规则: 模块名称必须是唯一的。 模块描述符文件module-info.java 必须有。 包名称必须是唯一的。...即使在不同的模块中,我们也不能有相同的包名。 每个模块将创建一个 jar 文件。对于多个 jar,我们需要创建单独的模块。 一个项目可以由多个模块组成。 模块类型 模块同样还具有类型,一共有四种。...默认情况下可以访问所有其他模块的类。 未命名模块 添加到类路径中的 jar 和类。当我们将 jar 或类添加到类路径时,所有这些类都会添加到未命名的模块中 只导出到其他未命名的模块和自动模块。...❝定向导包的作用域是模块。 依赖 如果一个模块要访问从其它模块导出的包,则该模块必须使用requires关键字导入要访问的包所在的模块。

    1.3K10

    解决idea运行javafx报错:缺少 JavaFX 运行时组件

    解决缺少 JavaFX 运行时组件的问题问题描述:在 Java 开发中,尤其是使用 JDK 11 及以后的版本,可能会遇到这样的错误提示:“缺少 JavaFX 运行时组件,需要使用该组件来运行此应用程序...解决方案:第一步:下载 JavaFX SDK为了运行依赖于 JavaFX 的应用程序,需要首先下载 JavaFX SDK。...以下是下载步骤: 访问官方下载页面: 官方下载链接:https://gluonhq.com/products/javafx/ 也可以私信博主获取最新的下载链接或帮助。...选择合适的版本: 确保下载的 JavaFX SDK 版本与的 JDK 版本兼容(例如,JavaFX 23.0.1 与 JDK 17)。...第二步:配置虚拟机选项在运行的 JavaFX 应用程序时,需要在 Java 虚拟机(JVM)中指定 JavaFX 的模块路径和需要加载的模块。

    98310

    首发! JDK14之jpackage命令尝鲜

    -jar XXXXX.jar 来运行程序. jdk9及以后的模块化 这是java模块化的一个分界线,其实jdk9,jdk10,我都没有用过, 我是直接尝试的jdk11....,需要哪些依赖,相当于在maven引包的基础上,要再声明一遍依赖 opens: 当前模块中的哪些包,可以被反射....如fxml中要声明处理的controller , 每当fxml加载的时候,都会去新建一个controller实例, 所以需要opens controller的包名给javafx.fxml exports...一般用于别的模块依赖当前模块的时候 jdk9及以后的打包方式 在jdk9及以后,打包方式,可以不局限于打jar包,可以把jdk的这些模块给一起用jlink打成一个镜像....软件的名字, 这里是Sunflower(向日葵) --moudle 模块的名字,相当于以前的Main函数的格式,这里换成了模块 '包名'/Main函数名 运行后结果如下: ?

    3.8K30

    利用Python爬取ZuluJDK最新发布版本并下载作为镜像分享站

    协议] 使用ZuluJDK,功能上基本和用OracleJDK没什么区别了,也不会受到Oracle的协议影响(ZuluJDK一直是GPL v2+CE) 关于使用OpenJDK开发Java软件,是否需要遵守...Python的模块依赖: requests==2.27.1 wget==3.2 数据获取 首先观察页面:https://www.azul.com/downloads/ 发现数据接口: [数据接口] 将其接口复制...不会有人是用安装器安装的吧?...不会吧,不会吧,不好吧……用安装器安装,到时候卸载会不会找不到它(。 ́︿ ̀。) macOS和Linux的ZuluJDK,通用的肯定是归档文件(tar、tar.gz),Windows的ZuluJDk都是...这里使用wget对数据进行下载;Python的wget模块:https://pypi.org/project/wget/ 这个可不是GNU的wget工具,是用来Python里调用wget进行下载的。

    2.9K122

    使用javapackager打包各系统安装包

    -argument arg:要作为元素插入到 JNLP 文件中的未命名参数。 -classpath files:相关 JAR 文件名列表。...句法:“名称 1=值 1,名称 2=值 2,名称 3=值 3” -nocss2bin:打包器在复制到 JAR 之前不会将 CSS 文件转换为二进制形式。...就是详细包名+类名,也就是程序的入口类的全类名 -argument arg:要插入到fx:argumentJNLP 文件中的元素中的未命名参数。...此选项仅用于 JavaFX 应用程序。不要用于 Java 应用程序,包括无头应用程序。 -srcdir dir:要打包的文件的基本目录。...-runtimeversion version:所需 JavaFX 运行时的版本。已弃用。 -noembedlauncher:如果存在,打包程序不会将 JavaFX 启动器类添加到 JAR 文件中。

    4.3K20
    领券