java:程序包javafx.geometry不存在问题及解决
作者:山___
java:程序包javafx.geometry不存在
开发工具
- IDEA+maven
报错信息
错误信息解读
- 1 Maven编译器输出框
- 2 compile 过程中有错
- 3 程序包不存在(在maven classpath中没有,不是不存在文件)
解决
解读1 2 为解决问题指明方向(诸如【Intellij IEDA运行报错:Error:(4, 19) java: 程序包javafx.*不存在】的解决方案不对症),应从Maven的生命周期着手解决。
解读 3 是具体问题。
我们是在编译java文件的时候需要依赖这个包中的class,也就是mvn compile
调用的编译程序的classpath中没有包含 import javafx.geometry.Point2D这个包。
包可能存在于 ${MAVEN_HOME} /jre/lib/rt.jar
这个jar中,所以问题变成了解决
mvn compile
调用的编译程序的classpath中缺少${MAVEN_HOME}/jre/lib/rt.jar
这个jar包的问题,那么把包添加到Classpath就行了。
解决方法 修改Pom文件
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <!-- 解决maven命令编译报错,因为rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面--> <bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath> </compilerArguments> </configuration> </plugin> </plugins> </pluginManagement>
import javafx.geometry.Point2D无法导入问题
首先,看一下自己的java的版本,由于我之前使用的版本为java se-1.6,导致找不到包,所以升级一下Java版本是最好的办法,亲测java se-1.8可以用,不想的话从网上倒入一个外部包,但是亲测发现还是不行,找不到包,可能是版本的问题吧,升级配置完环境以后
访问限制
由于对必需的库 C:\Program Files (x86)\Java\jre1.8.0_77\lib\ext\jfxrt.jar 具有一定限制,因此无法访问类型 Point2D
这是因为这个类是Eclipse的JRE带的,但并不属于JAVA的公开API。
解决方法
右击项目->属性->Java Compiler(java编译器)->Errors/Warnings(错误、警告)->Deprecated and restricted API(建议不要使用和限制使用的API)->Forbidden reference (禁止引用)> Ignore(忽略)
然后就行了~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。