与maven存在JAVA_主页不一致问题

与maven存在JAVA_主页不一致问题,java,maven,release,java-home,Java,Maven,Release,Java Home,我即将发布一个项目,但JAVA_HOME似乎前后不一致。也许它被其他地方覆盖了?我使用的是ubuntu 14.04,我有openjdk-7、java-7-oracle、java-8-oracle。默认java是使用update java alternations java版本 java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM

我即将发布一个项目,但JAVA_HOME似乎前后不一致。也许它被其他地方覆盖了?我使用的是ubuntu 14.04,我有openjdk-7、java-7-oracle、java-8-oracle。默认java是使用
update java alternations

java版本

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
mvn-version提供以下输出

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T17:37:52+00:00)
Maven home: /usr/share/maven3
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-39-generic", arch: "amd64", family: "unix"
但在执行mvn release:prepare时,我看到的是:

[INFO] Not generating release POMs
[INFO] Executing goals 'clean verify'...
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] Error: JAVA_HOME is not defined correctly.
[INFO]   We cannot execute /usr/lib/jvm/java-8-oracle/bin/java/bin/java
看起来正在错误的文件夹中查找java执行器:
/java/bin/java
。我曾尝试将java home更改为
/usr/lib/jvm/java-8-orable/bin
,但它中断了
mvn版本的检查

如何解决这个问题?谢谢你的阅读

我找不到这里来解决这个问题。有人遇到过类似的情况吗

编辑1:

 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <excludes>
                        <exclude>**/*ITest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <meminitial>128m</meminitial>
                    <maxmem>512m</maxmem>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <preparationGoals>clean verify</preparationGoals>
                    <tagBase>https://xxxx/svn/projectname/tags</tagBase>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>maven-apt-plugin</artifactId>
                <version>1.0</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
编辑2:

 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <excludes>
                        <exclude>**/*ITest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <meminitial>128m</meminitial>
                    <maxmem>512m</maxmem>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <preparationGoals>clean verify</preparationGoals>
                    <tagBase>https://xxxx/svn/projectname/tags</tagBase>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>maven-apt-plugin</artifactId>
                <version>1.0</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
亲爱的下层选民们,我不是在寻求如何让Java回家的帮助。它被设置为

/usr/lib/jvm/java-8-oracle
然后,当我尝试用Java7运行相同的东西时,我看到了下面的内容

/usr/lib/jvm/java-7-oracle
这是由webup8脚本在/etc/profile.d/jdk.sh中设置的

export J2SDKDIR=/usr/lib/jvm/java-7-oracle
export J2REDIR=/usr/lib/jvm/java-7-oracle/jre
export PATH=$PATH:/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-7-oracle/db/bin:/usr/lib/jvm/java-7-oracle/jre/bin
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export DERBY_HOME=/usr/lib/jvm/java-7-oracle/db
编辑3

 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <excludes>
                        <exclude>**/*ITest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <meminitial>128m</meminitial>
                    <maxmem>512m</maxmem>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <preparationGoals>clean verify</preparationGoals>
                    <tagBase>https://xxxx/svn/projectname/tags</tagBase>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>maven-apt-plugin</artifactId>
                <version>1.0</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

我已经切换到openjdk 7,编辑jdk.sh以反映这一点
export JAVA_HOME=/usr/lib/jvm/JAVA-1.7.0-openjdk-amd64
,错误就消失了。我谈到了其他著名的问题(tags folder.wird的权限问题)。所以我想这与maven本身无关。但奇怪的是,它在openjdk上运行良好…

JAVA\u HOME必须指向jre,而不是jdk。然后设置:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre

我花了相当多的时间来处理类似的错误。看起来包管理器可能会在Java安装中造成混乱。Java的路径有时是在bash文件中硬编码的。我在
/etc/profile.d/jdk.sh
中找到了一个。它只是覆盖了你的设置。另一个解决方法是更新symlink,在我的例子中是
/usr/lib/jvm/java⇒ /usr/java/jdk1.7.0_45
。尝试在所有bash文件中查找
java/bin
文本。

另一种解决方法:

export JAVACMD=$JAVA_HOME/bin/java

设置/usr/lib/jvm/java⇒ /usr/java/jdk1.7.0_45对我不起作用

在我的主文件夹上创建一个文件
。mavenrc
并添加下面的代码为我解决了问题。(Ubuntu 14.10,Maven 3.2.1)


在终端上的超级用户权限中打开

vi etc/environment
在打开的文件上添加JAVA_主路径

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/"
希望你把JAVA_放在家里 检查是否使用命令设置了JAVA_主页

echo $JAVA_HOME

我使用OpenJDK作为默认java,在/etc/environment中更新了java_HOME,所有问题都解决了。谢谢你帮我度过难关,我也遇到了同样的问题。我的解决办法是:

cd /usr/lib/jvm/java-8-oracle/jre/bin
sudo ln -s /usr/lib/jvm/java-8-oracle/bin/java java

您是安装了完整的JDK还是只安装了JRE?它与java-7一起工作吗?pom中有哪些编译器选项?是的,安装了完整的jdk。也不适用于Java7。我已经编辑了这篇文章。谢谢可能的否决票副本哈!?你是如何得出结论的?我的java主页并没有设置为你的帖子所指的内容?我不是在寻求关于如何设置java主页的帮助,来吧。。。如果你愿意阅读,你至少会明白这是关于maven是如何阅读Java Home的。。。。。为什么你对一些你甚至都不懂的东西投我的反对票?请发布完整的
mvn-X
日志。您好,在我转到oracle java 7之前,事实就是这样