jdk 1.8

最近用到了 javafx.util.Pair; 类,后来突然编译不通过,报 “程序包javafx.util不存在”。idea 编译不通过,单独使用 mvn clean install 也是报一样的错。

百度过后,弄明白了:是编译的时候没有把 jdk 目录 下 的 "lib/ext/jfxrt.jar" 包导入进来。

那就好办了,在 pom.xml 文件中声明依赖进来就可以

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>javafx</artifactId>
            <version>2.0</version>
            <scope>system</scope>
            <systemPath>${java.home}\lib\ext\jfxrt.jar</systemPath>
        </dependency>

OK ,idea 编译 和 doc 窗口执行 mvn clean install 编译都通过了。

问题是解决了,但是有点不足,明明是 jdk 的东西,为什么还需要这么来声明依赖呢,不太友好。"lib/ext/" 目录下有很多扩展的包,如果我用到了都需要一个个地声明,麻烦。

后来参考了 https://blog.csdn.net/liumiaocn/article/details/89785875 文章,使用了一下 javafx-maven-plugin 插件,就很好的解决了问题

</build>		
	<plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <extdirs>${project.basedir}/WebContent/WEB-INF/lib</extdirs>
                        <bootclasspath>${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/lib/ext/jfxrt.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
</build>

javafx-maven-plugin 的版本,可以采用最新的 https://github.com/javafx-maven-plugin/javafx-maven-plugin

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐