【发布时间】:2018-05-24 12:55:30
【问题描述】:
我切换到 ubuntu 18.04。 其中默认的 jvm 是 java 10
现在我使用 javafx 的应用程序无法编译了。
cannot find symbol
[ERROR] symbol: class ObservableMap
我尝试将参数添加到 maven-compiler-plugin 以加载 javafx.graphics 模块。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>--add-modules</arg>
<arg>javafx.graphics</arg>
</compilerArgs>
</configuration>
</plugin>
结果:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] module not found: javafx.graphics
当然,java --list-modules | grep fx 什么都不返回。
我花了 10 多个小时试图弄清楚这一点。
TL:DR 我应该怎么做才能用 Java 10 编译我的 JavaFX 模块?
最小项目:
/pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<name>java10fx</name>
<artifactId>java10fx</artifactId>
<version>0.0.1</version>
<groupId>my.test</groupId>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
/src/main/java/MyApp.java
import javafx.application.Application;
import javafx.stage.Stage;
public class MyApp extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {}
}
错误:
java10fx/src/main/java/MyApp.java:[1,26] package javafx.application does not exist
【问题讨论】:
-
添加最小示例
-
有几件事需要明确,您是否正在构建模块化代码?你的 Maven 配置是什么(什么 Java 版本)?另外,添加了 Ubuntu 的标签,因为在 MacOS 上我能够非常轻松地构建类似的应用程序。
-
只是我指定的两个文件和 mvn copile。我的java版本是openjdk 10.0.1 2018-04-17
标签: java ubuntu javafx java-10