我将JAVA_HOME设置为
C:\Program Files (x86)\Java\jdk1.6.0_18
运行maven install后,我从eclipse中收到此消息:
原因:
Unable to locate the Javac Compiler in:
C:\Program Files (x86)\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.
我确信这是棘手的部分
请确保您使用的是JDK 1.4或 上面和 不是JRE
当我将配置设置为JRE6时,如何将其更改为已安装的JDK 1.6
修改
我甚至尝试修改插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<executable>C:\Program Files (x86)\Java\jdk1.6.0_18\bin</executable>
</configuration>
</plugin>
我仍然得到同样的错误
也许我忘了说我使用eclipse maven插件..如何在eclipse中从JRE更改为JDK?
答案 0 :(得分:136)
您可以尝试更新Eclipse正在使用的JDK,如下所示:
在Window-&gt; Preferences ...-&gt; Java-&gt; Installed JREs中添加和设置JRE:
JRE type: Standard VM JRE
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18
如果不是这种情况,则JAVA_HOME路径中的括号和空格可能会导致问题。尝试将JDK复制到其他位置并更新JAVA_HOME。
答案 1 :(得分:19)
eclipse.ini需要vm参数指向你的jdk位置。
编辑eclipse.ini
文件以指向您的jdk主页,如下所示 -
-vm
C:\Program Files\Java\jdk1.6.0_06
这确保Eclipse将运行JDK,而不是计算机上的任何默认JRE。
答案 2 :(得分:12)
你试试:
转到Preferences/Java/Installed JREs
并为地点"C:\Program Files\Java\jdk1.6.0_27\jre
添加一个或类似内容。
删除C:\Program Files\Java\jre6
正如您所看到的,路径C:\Program Files\Java\jre6\..\lib\tools.jar
仅在第一部分(直到/ ..)被C:\Program Files\Java\jdk1.6.0_27\jre
替换时才有意义。
答案 3 :(得分:9)
将Fork设置为true为我解决了这个问题。
<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
</configuration>
非常感谢,Sam Yang ......你结识了我的一天
答案 4 :(得分:8)
我有同样的问题!一直在搜索和搜索天,因为所有关于“把-vm c:\ program files \ java \ jdkxxxxx \ bin”放在ini ar中作为一个shortcurt的参数的喋喋不休并不是所有的heklp! (我听起来很沮丧吗?相信我,这是轻描淡写的!我只是因为我失去了一周试图让Maven变得可靠而感到愤怒!)
我的行为非常不可预测。有时它编译,有时不编译。如果我做了maven clean,它找不到编译器并且失败了。如果我在构建路径中更改了某些内容,它会突然再次运行!!
直到我去窗口 - &gt;偏好 - &gt; java - &gt;安装了JRE。我使用JDK的位置添加了一个新的JRE,然后删除了JRE。突然,maven跑稳了!
也许值得在apache手册中输入字体大小为30左右的字母? 尽管如此,这对java社区来说简直太过分了!我无法想象所有这些人失去了多少天,试图解决他们的问题!我无法想象这是作为最终版本发布的。我个人甚至不敢以BETA软件的名义发布这样的东西......
亲切的问候......经过一周的篡改,我终于可以开始发展了。我希望我的老板不会发现这一点。我花了很多力气说服他不要去.NET,我已经为此感到遗憾。
答案 5 :(得分:3)
使用Run as - &gt;我遇到了同样的问题。 Maven在Eclipse中安装。 JAVA_HOME和eclipse.ini都没关系,指向我最新的JDK。但是m2clipse使用了JRE。在Eclipse之外使用mvn install工作得很好! 在我的情况下,我解决了以下问题: 1.在Eclipse中导航:窗口 - &gt;偏好 - &gt; Java - &gt;已安装的JRE 2. JRE和JDK有两个非活动条目。活动的是最新安装的JDK。删除所有条目,但是一个maven应该使用。
我认为maven没有考虑哪一个活跃......
答案 6 :(得分:3)
我刚刚安装了maven 3.0.4,相应地设置了M2_HOME
,M2
和JAVA_HOME
。然后我运行了以下命令:
mvn archetype:generate....
mvn compile
我收到了失败的消息,例如:maven unable to locate javac compiler
。
在我的计算机上,我在 c:\ program files \ java \ jre.1.6 上安装了默认jre。
我将另一个 c:\ java \ jdk1.6 和JAVA_HOME
设置为此 c:\ java \ jdk1.6 。
我的设置没有任何问题。搜索之后,我决定查看mvn.bat
,我在每一步都回显%JAVA_HOME%
并且它正确显示为C:\java\jdk1.6
但是当我运行命令:mvn --version
时,它显示Java主页: c:\ program files \ java \ jre1.1.6 。
最后,我发现我只需要在下面的命令中设置-Djava.home=c:\java\jdk1.6
,并且现在正常工作:
%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Djava.home=%JAVA_HOME%" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
希望这有帮助。
注意:这是针对命令行的mvn
而不是Eclipse。
答案 7 :(得分:2)
我通过将Installed JRE的位置更改为JDK本身中的目录来解决了这个问题。设置JAVA_HOME
环境变量的正确值并没有解决问题。
就我而言,有两个目录
C:\Program Files\Java\jdk1.7.0_03 --> For JDK
C:\Program Files\Java\jre7 --> For JRE
最初我在Eclipse中将C:\Program Files\Java\jre7
设置为已安装的JRE,并且在Maven的情况下我得到了相同的错误(Ant工作正常)。
通过在Eclipse中将已安装的JRE更改为C:\Program Files\Java\jdk1.7.0_03\jre7
作为已安装的JRE,问题就解决了。
答案 8 :(得分:2)
仅限Eclipse设置
执行以下步骤:
右键单击Eclipse项目属性
Java构建路径 - &gt;库
选择JRE系统库 - &gt;单击“编辑”按钮
点击“已安装的JRE ...”按钮
将JRE编辑为:设置JRE Home = JAVA_HOME或JAVA_HOME \ jre
<强> ScreentShot:强>
非常感谢,
帕塔
答案 9 :(得分:2)
听起来Maven正在使用JRE,而不是JDK。也许您在安装JDK之前安装了Maven?
检查settings files。总共有3个,系统,用户和项目。它最有可能出现在安装配置($ M2_HOME / conf / settings.xml)中,或者可能是每用户配置($ {user.dir} / .m2 / settings.xml)。
答案 10 :(得分:2)
基于http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html,您必须在pom.xml中将fork设置为true。
答案 11 :(得分:1)
解决方案很简单,有时候是日食窗口 - &gt;偏好 - &gt; java - &gt;已安装的JRE指向C:\Program files\Java\jre
,当我将其更改为C:\Program files\Java\JDK 6.0\jre
时,它正在100%工作。
答案 12 :(得分:1)
转到Eclipse窗口 - &gt;首选项...-&gt; Java-&gt;已安装的JRE应指向您安装的JDK,而不是JRE。
答案 13 :(得分:1)
我在Amazon Linux上遇到了同样的问题。原来我必须安装jdk的开发版本:
sudo yum -y install java-1.7.0-openjdk-devel
答案 14 :(得分:1)
就我而言,在eclipse中Run-> Debug Configurations
在选择的jre选项卡中,jdk而不是jre解决了问题。
答案 15 :(得分:1)
不要忘记,如果从特定的Eclipse配置运行项目,则应在“运行配置”中更改Java运行时 - &gt; '你的maven配置' - &gt;在您将Eclipse JDK添加到Eclipse首选项之后,“JRE选项卡”。
答案 16 :(得分:1)
右键点击Project - &gt;属性 - &gt; Java构建路径。选择JRE系统路径 - &gt;编辑。选择Workspace Default JRE,并将其指向JDK&gt; 1.4
答案 17 :(得分:1)
正如其他几个人所提到的,Eclipse Window->Preferences...->Java->Installed JREs
应该指向你安装的 JDK ,而不是到JRE。只有这样它才能找到错误消息中提到的../lib
文件夹。
即使这样,问题也可能再次发生。我在Eclipse(Juno)中的出路是做Maven -> Update project...
之后问题就消失了。
我怀疑原因是一些Eclipse生成的文件(.classpath,.project,.preferences)在我的问题中的项目中进行了颠覆。因此,svn更新引入了这个问题,Eclipse中maven的配置更新再次解决了这个问题。
真正的解决方案:从版本控制中省略Eclipse生成的.files ,让maven eclipse插件处理项目配置。 (欢迎提供其他指示/建议)。
答案 18 :(得分:1)
Window -> Preferences -> Java -> installed JREs -> Execution Enviroments -> click the checkbox on the right side
答案 19 :(得分:0)
我猜想编译器的位置是在pom中定义的,因为编译器插件位于显示的jre位置,而不是你有JAVA_HOME指向的jdk位置。
答案 20 :(得分:0)
许多其他答案告诉您将Eclipse指向JDK而不是JRE。
这是另一个更具体/更明确的答案[比我在这里的任何答案中看到的]逐步说明如何做到这一点: How do you install JDK?
这就是解决我同样问题的原因。
答案 21 :(得分:0)
确保eclipse.ini中的“-vm”分为两行,即:
-vm
C:\Program Files\Java\jdk1.6.0_06
答案 22 :(得分:0)
您还可以确保Eclipse具有所有更新的更新。为此,请右键单击项目,然后按“刷新”菜单项。
答案 23 :(得分:0)
如果您设置了JAVA_HOME,问题仍然存在,请尝试以下操作。 (我在新安装的电脑上遇到了同样的问题。)
假设您正在使用Eclipse。
多数民众赞成。你的项目不会受到荷兰问题的影响。 希望有所帮助。
答案 24 :(得分:0)
我有同样的错误,因为JUNIT版本,我有3个 3.8.1我已经改为4.8.1。
所以解决方案是
你必须去POM,并确保你的依赖看起来像这样
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
答案 25 :(得分:0)
我更改了maven-compiler-plugin的配置,以添加值为true的可执行文件和fork。
<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
<executable>C:\Program Files\Java\jdk1.6.0_18\bin\javac</executable>
</configuration>
它对我有用。
答案 26 :(得分:0)
做Echo %JAVA_HOME%
然后mvn --version
JRE
路径应该相同....然后转到Window -> preferences - java - installed jre's
位置应与Java_Home
显示的位置相同。
答案 27 :(得分:0)
您需要在JAVA_HOME
中指明mvn.ini
(它位于maven文件夹/bin
中),您的问题就会消失。
答案 28 :(得分:0)
转到属性,右键单击项目。
在LINKED RESOURCES中添加一个名为JAVA_HOME的新路径并放置您的jdk位置,例如&#34; C:\ Program Files \ Java \ jdk1.8.0_73&#34;
那就是!!
答案 29 :(得分:0)
解决这个问题非常简单....
如果您没有 ANT 构建文件,请生成它。在eclipse中,您可以轻松创建 ANT 文件。
请参阅创建 ANT 构建文件[http://www.codejava.net/ides/eclipse/how-to-create-ant-build-file-for-existing-java-project-in-eclipse]的链接。
现在按照给定的步骤进行操作:
1)在视图窗口的ANT视图中添加 ANT 构建文件。
2)右键单击 ANT 构建文件,然后选择运行方式,并选择“Ant Build”中的第二个选项。
3)现在将打开一个对话框,其中包含各种选项和标签。
4)选择 JRE 标签。
5)你会看到3个单选按钮,他们将选择JRE或JDK作为选项。
6)仔细查看单选按钮选项是否选择 JRE ,然后将其更改为 JDK 。
7)点击“应用”。
就是这样...... !!!
答案 30 :(得分:0)
有同样的问题。以上都没有,这对我有用:
将JAVA_HOME从... \ jdk.1.8.0 \更改为... \ jdk.1.8.0 \ jre \
答案 31 :(得分:0)
转到Eclipse&gt;偏好&gt; Java&gt;已安装的JRE&gt;选择您指向的jre位置,然后单击Edit&gt;添加外部JAR并选择tools.jar