2014-11-06 21 views
10

Ich bin am Rande der Freigabe eines Projekts, aber es scheint JAVA_HOME ist inkonsistent. Vielleicht wurde es woanders außer Kraft gesetzt? Ich benutze ubuntu 14.04 und ich habe openjdk-7, java-7-oracle, java-8-oracle. Standard-Java-Set wurde mit update-java-alternativesJAVA_HOME Inkonsistenz Problem mit Maven

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 -Ausführung gibt die folgende Ausgabe

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" 

Aber wenn MVN Release tun: bereiten, ist unten, was ich sehe:

[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 

Es sieht so aus, als ob der Java-Executor im falschen Ordner gesucht wird : /java/bin/java. Ich habe versucht, Java nach Hause zu /usr/lib/jvm/java-8-orable/bin ändern, aber es brach mvn-version überprüfen.

Wie behebt man das? Danke für das Lesen

Ich kann hier nicht finden, das zu beheben. Ist jemand auf etwas Ähnliches gestoßen?

EDIT 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> 

Ich habe Java-7-Orakel eingeschaltet und immer noch keine Chance:

[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 

EDIT 2:

Lieber unten Wähler, Ich frage nicht nach Hilfe zum Einrichten von Java Home. Es ist zu

/usr/lib/jvm/java-8-oracle 

dann den folgenden gesetzt wurde, wenn ich mit Java gleiche versucht laufen 7

/usr/lib/jvm/java-7-oracle 

Das in /etc/profile.d/jdk.sh von webup8 Skript gesetzt ist

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 

EDIT 3

ich habe switche d zu openjdk 7, bearbeitet die jdk.sh, um dies zu reflektieren export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 und der Fehler ging. Ich laufe zu anderen bekannten Problemen (Erlaubnisprobleme zu Tag-Ordner. Seltsam). Es ist also nichts mit dem Maven selbst zu tun. Aber das ist seltsam, dass es gut für openjdk funktioniert ...

+1

hilft Haben Sie voll JDK installiert oder nur JRE? Funktioniert es mit Java-7? Welche Compileroptionen gibt es in Ihrem Pom? – Dmytro

+0

ja voll jdk wurde installiert. funktioniert auch nicht mit Java 7. Ich habe die post.thanks –

+0

möglichen Duplikate von [Wie Oracle's Java als das Standard-Java in Ubuntu eingestellt?] Bearbeitet (http://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as- the-default-java-in-ubuntu) – Joe

Antwort

10

JAVA_HOME muss auf jre zeigen, nicht jdk. Dann stellen Sie ein:

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

Hallo Das war eigentlich der Fall, bevor ich nach oracle-java 7 ging –

+0

Das funktionierte für mich. Vielen Dank! – thouliha

1

Ich verbringe ziemlich viel Zeit, um ähnlichen Fehler anzugehen. Es sieht so aus, als ob der Paketmanager Unordnung in Java-Installationen verursachen könnte. Der Pfad zu Java ist manchmal in bash-Dateien fest codiert. Ich habe einen in /etc/profile.d/jdk.sh gefunden. Es überschreibt nur Ihre Einstellungen. Ein weiterer Fix/Workaround dafür ist Symlink aktualisieren, in meinem Fall war es /usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45. Versuchen Sie in allen Bash-Dateien nach dem Text java/bin zu suchen.

+0

hat meinen Beitrag aktualisiert. Auf openjdk7 umgeschaltet –

2

Eine andere Lösung:

export JAVACMD=$JAVA_HOME/bin/java 

Einstellung/usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45 nicht für mich Ordner

6

Erstellen einer Datei .mavenrc auf meinem Heim funktionierten und das Hinzufügen des unten stehenden Codes löste das Problem für mich. (Ubuntu 14.10, Maven 3.2.1)

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

in Superuser-Privileg auf Ihrem Terminal offen

vi etc/environment 

auf geöffnete Datei hinzufügen JAVA_HOME Pfad

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/" 

Hoffe, dass Sie die JAVA_HOME gesetzt Überprüfen Sie, ob Ihr JAVA_HOME mit dem Befehl

echo $JAVA_HOME 
eingestellt ist
0

Ich verwendete OpenJDK als Standard-Java, aktualisiert JAVA_HOME in/etc/Umgebung und alle Probleme gingen. Danke für all Ihre Mühe, die mir durch diese