在Querydsl中生成Qclasses时,Maven构建和JDK的Eclipse问题
当我在pom.xml
添加以下代码以支持Querydsl时
com.mysema.maven apt-maven-plugin 1.0.6 process target/generated-sources/java com.mysema.query.apt.jpa.JPAAnnotationProcessor
使用Eclipse构建时出现此错误。 我认为它与classpath和JDK jar有关系
You need to run build with JDK or have tools.jar on the classpath. If this occures during eclipse build make sure you run eclipse under JDK as well (com.mysema.maven:apt-maven-plugin:1.0.6:process:default:generate-sources)
.classpath :
额外信息:
我的maven安装
JAVA_HOME:C:\ Program Files \ Java \ jdk1.7.0_45
路径:%JAVA_HOME%\ bin;
解决方案1
点击此链接
“Maven APT插件有一个已知问题,无法直接从Eclipse中使用.Eclipse用户必须通过在命令提示符下运行命令mvn generate-sources手动创建Querydsl查询类型。”
所以我在我的项目floder中使用console cmd
执行命令行mvn generate-sources
,我生成了我的Qclasses。
解决方案2来自@ informatik01评论
我们可以在eclipse.ini
明确指定JVM :
-vm C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe -vmargs ...
-vm
选项必须在-vmargs
选项之前发生,有关更多信息,请阅读下面的@ informatik01注释。
你可以在pom中试试这个:
com.mysema.maven apt-maven-plugin 1.0.6 process target/generated-sources/java com.mysema.query.apt.jpa.JPAAnnotationProcessor com.sun tools 1.7 system ${java.home}/../lib/tools.jar
并看看它是否有任何改变。 它应该在构建路径中强制tools.jar。
编辑。 既然没有帮助,请尝试指定
-vm D:/work/Java/jdk1.6.0_13/bin/javaw.exe
在eclipse.ini中(单独的行很重要),如本主题中所述 。
com.mysema.maven maven-apt-plugin 1.0.6 process target/generated-sources/java com.mysema.query.apt.jpa.JAPAnnotationProcessor
添加插件,你将解决它
这个问题发生在我身上,因为如上所述,Eclipse本身正在运行JRE而不是JDK。
我通过将%JAVA_HOME%\ bin添加到PATH环境变量的前面来解决它。
我通过阅读了解了JVM eclipse的用途 : 了解JVM Eclipse的运行情况
如果您通过shell commond构建,如mvn install。 然后在shell或cmd窗口中运行此命令:echo $ CLASSPATH。 此命令显示您的类路径。
如果您使用的是Eclipse,请打开Window> Preferences> Java> Installed JREs,确保已安装的JRE是jdk根位置。 对我来说,它是C:\ Java \ jdk1.7.0_51
希望能帮助到你。
尝试在Eclipse中更新JDK,如下所示:
设置JRE
看看下面的路径 – 有program files
(但在你提到的路径中,你的路径中没有program files
,通常java和所有程序都安装在program files
所以确保路径)
Window->Preferences...->Java->Installed JREs: JRE type: Standard VM JRE Name: jdk1.6.0_18 JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18
alos确保JAVA_HOME
路径正确设置到JDK\bin
(没有任何空格和所有路径)
尝试将JDK
复制到其他位置,并使用该新位置更新JAVA_HOME
。
让我知道任何其他问题。
不要忘记在Eclipse项目设置中检查执行环境的设置: 项目构建路径 – >库 – > JRE系统库 。
如果这是错误的(例如jre ),请将其切换为jdk 。
在我的例子中,这解决了这个问题(“你需要使用JDK运行构建或者在类路径上使用tools.jar。”消失了)。
然后约。 Maven运行日志中的第四行更改(例如)
... Java home: C:\Program Files\Java\jre1.8.0_66 ....
至
... Java home: C:\Program Files\Java\jdk1.8.0_66\jre ...
希望这可以帮助。
我已经完成了上面提出的所有建议但无济于事。 最后,因为我正在设置一台新计算机,所以我意识到我没有设置JAVA_HOME
变量。
所以我所做的就是将JAVA_HOME
变量添加到我的系统变量并将其设置为JDK路径: C:\Program Files\Java\jdk1.8.0_172
瞧 – mvn generate-resources
再次开始工作。