![](/img/trans.png)
[英]java.lang.NoClassDefFoundError: io/reactivex/subjects/Subject when building jar in Intellij Idea (gradle + JavaFX 11)
[英]Missing dependencies when building to jar with javaFx and intellij IDEA
我正在尝试在 intellij IDEA 中将我的项目构建为一个可运行的 jar; 我在 GUI 中使用 javaFx。 我已经通过开发成功地多次运行/构建了该项目,但现在我在另一个stackoverflow 帖子中创建了一个工件,尽管我选择了它并且它在构建路径中,但它不包含 javafx 依赖项,我的消息是: Error: JavaFX runtime components are missing, and are required to run this application
即使我已在构建和环境变量中添加了依赖项Error: JavaFX runtime components are missing, and are required to run this application
。 有解决办法吗?
谢谢
尝试在 IntelliJ 中运行使用 JavaFX 11 创建的 JAR 文件时,我收到了相同的错误消息。
您只是缺少两个额外的步骤:
要在 IntelliJ 中做到这一点,它是:
文件 > 项目结构 > 工件 > 单击“+”符号 > 文件 > 然后选择 JavaFX 文件夹中的所有 .so 文件。
设想:
您仔细遵循“https://openjfx.io/openjfx-docs/#install-javafx”,即“非模块化 Maven”
您的应用程序确实在 IntelliJ 中运行
你不能构建一个正确的罐子
你不想和
..EXPORT / .. --wtf .... : --module-path $PATH_TO_FX --add-modules
我们必须使用辅助类。
添加以下类“Helper”并使其成为“MAIN”类
公共类启动器{
public static void main(String[] args) { App.main(args); }
}
将 maven 中的 refs 从您的实际名称(如果从 javafx site sample.. 开始)更改为这个 Launcher 类:
从:
org.example.App
到:
org.example.Launcher
在 manven 中添加 SHADE 插件:
org.apache.maven.plugins maven-shade-plugin 3.2.0 <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>project-classifier</shadedClassifierName> <outputFile>shade\\${project.artifactId}.jar</outputFile> <transformers> <transformer implementation= "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- original: <mainClass>org.example.App</mainClass> --> <mainClass>org.example.Launcher</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
要在 IntelliJ 中运行,请将“编辑配置”中的主类更改为“启动器”
...运行“mvn clean!” :)
PS:您可以在这里看到 ti 的运行情况:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.