在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再次开始工作。