我即将发布一个项目,但似乎JAVA_HOME不一致。也许它被其他地方覆盖了?我使用的是ubuntu 14.04,我有openjdk-7,java-7-oracle,java-8-oracle。使用update-java-alternatives
java -version
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发布时:准备,下面是我看到的:
[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-version
。
如何解决这个问题?感谢您的阅读
我无法在此找到解决方法。有没有人遇到类似的东西?
编辑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>
我已经切换到java-7-oracle但仍然没有机会:
[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-7-oracle/bin/java/bin/java
编辑2:
亲爱的选民,我不是在寻求有关如何设置Java Home的帮助。它已被设置为
/usr/lib/jvm/java-8-oracle
然后当我尝试使用java 7运行相同的东西时,接下来是
/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
我已切换到openjdk 7,编辑了jdk.sh以反映此export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
并且错误消失了。我跑到其他着名的问题(权限问题到标签文件夹。很奇怪)。因此,我认为它与maven本身无关。但这很奇怪,它适用于openjdk ......
答案 0 :(得分:10)
JAVA_HOME必须指向jre,而不是jdk。然后设置:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
答案 1 :(得分:6)
在我的主文件夹上创建文件.mavenrc
并添加下面的代码解决了我的问题。 (Ubuntu 14.10,Maven 3.2.1)
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
答案 2 :(得分:2)
另一种解决方法:
export JAVACMD=$JAVA_HOME/bin/java
设置/ usr / lib / jvm /java⇒/usr/java/jdk1.7.0_45对我不起作用
答案 3 :(得分:1)
我花了很多时间来解决类似的错误。看起来包管理器可能会在Java安装中造成混乱。 Java的路径有时在bash文件中进行硬编码。我在/etc/profile.d/jdk.sh
找到了一个。它只是覆盖您的设置。另一个修复/解决方法是更新符号链接,在我的情况下它是/usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45
。尝试在所有bash文件中查找java/bin
文本。
答案 4 :(得分:1)
终端上的超级用户权限
vi etc/environment
在打开的文件上添加JAVA_HOME路径
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/"
希望你设置JAVA_HOME 检查是否使用命令
设置了JAVA_HOMEecho $JAVA_HOME
答案 5 :(得分:0)
我有同样的问题。我的解决方法是:
longitudes = [0, 1, 2 ... 358, 359]
latitudes = [90, -89 ... -89, -90]
data = np.random.randint(5, (180, 360))