0

我有一个使用 Maven2 构建的 NetBeans 平台项目。当我尝试创建一个新的平台模块时,我收到了这个奇怪的错误:

cd ~/src; JAVA_HOME=/usr/lib/jvm/jdk1.7.0/bin/java ~/netbeans-7.3/java/maven/bin/mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes...
Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/lib/jvm/jdk1.7.0/bin/java/bin/java

~/.bashrc我有以下定义JAVA_HOME

export JAVA_HOME="/usr/lib/jvm/jdk1.7.0"
export JDK_HOME="/usr/lib/jvm/jdk1.7.0"

最后没有斜线,但是 maven 附加/bin/java/bin/java到这个路径。我可以毫无问题地使用 Maven 构建已经存在的模块,只是在创建新模块时它会失败。Maven从哪里得到这个JAVA_HOME

编辑: 行家设置:

$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.7.0_17
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "3.2.0-39-generic" arch: "amd64" Family: "unix"
4

4 回答 4

1

您在JAVA_HOME命令行上重新定义指向/usr/lib/jvm/jdk1.7.0/bin/java,这是错误的:

cd ~/src; JAVA_HOME=/usr/lib/jvm/jdk1.7.0/bin/java ...

JAVA_HOME=/usr/lib/jvm/jdk1.7.0/bin/java从命令行中删除:

cd ~/src; ~/netbeans-7.3/java/maven/bin/mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes...
于 2013-03-28T08:01:48.183 回答
0

netbeans 从 IDE 中 Java 平台的定义中获取 JAVA_HOME(请参阅工具/Java 平台)

除非您选择自定义平台,否则 IDE 将使用默认平台,即 IDE 正在运行的平台。

所有平台都需要在“工具/Java 平台”对话框中定义,并进行验证检查以选择正确的文件夹。

也许有些东西及时改变了你,并且那里的定义不正确?

于 2013-03-28T08:17:06.347 回答
0

问题在于JAVA_HOMEin 的定义不正确~/.bash_profile

Maven 的 NetBeans 集成更喜欢:

System.getenv("JAVA_HOME")

前:

System.getProperty("java.home")
于 2013-03-28T10:20:01.163 回答
0

对于 linux 在 netbeans 的 java/maven/bin 文件夹下找到 mvn 可执行文件并添加

from="/bin/bin/java"
to="/bin/java"
JAVACMD="${JAVACMD/$from/$to}" 

行前

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."

干杯

于 2013-07-10T01:47:48.027 回答