2014-11-06 14 views
10

Sono sull'orlo del rilascio di un progetto ma sembra che JAVA_HOME sia stato incoerente. Forse è stato ignorato da qualche altra parte? Sto usando Ubuntu 14.04 e ho openjdk-7, java-7-oracle, java-8-oracle. java di default è stata impostata utilizzando update-java-alternativesAvere incoerenza JAVA_HOME con 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 -version ha pronunciato la seguente uscita

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" 

Ma quando si fa rilascio mvn: preparare, sotto è quello che vedo:

[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 

Sembra che l'esecutore java sia stato cercato nella cartella sbagliata : /java/bin/java. Ho provato a cambiare casa Java a /usr/lib/jvm/java-8-orable/bin ma si è rotto il controllo mvn-version.

Come risolvere il problema? Grazie per la lettura

Non riesco a trovare qui per risolvere il problema. Qualcuno ha incontrato qualcosa di simile?

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> 

ho passato a java-7-Oracle e ancora nessuna possibilità:

[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:

elettori Caro verso il basso, Non sto chiedendo aiuto su come impostare Java Home. E 'stato impostato su

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

Poi al seguente quando ho provato a fare funzionare stessa cosa con Java 7

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

Questo si trova in /etc/profile.d/jdk.sh dallo script webup8

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

ho switche d per aprirejdk 7, modificato il jdk.sh per riflettere questo export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 e l'errore è andato. Corro ad altri famosi problemi (problemi di autorizzazione alla cartella dei tag. Strano). Quindi non è imparentato con lo stesso maven. Ma è strano che funzioni bene per openjdk ...

+1

Hai installato JDK completo o solo JRE? Funziona con java-7? Quali sono le opzioni del compilatore nel tuo pom? – Dmytro

+0

yes jdk completo è stato installato. non funziona nemmeno con java 7. Ho modificato il post.thanks –

+0

possibile duplicato di [Come impostare Oracle Java come Java predefinito in Ubuntu?] (Http://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as- the-default-java-in-ubuntu) – Joe

risposta

10

JAVA_HOME deve puntare a jre, non jdk. Quindi impostare:

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

Ciao Questo è stato effettivamente il caso, prima di passare a oracle-java 7 –

+0

Questo ha funzionato per me. Grazie! – thouliha

1

Trascorso un po 'di tempo per affrontare un errore simile. Sembra che il gestore dei pacchetti possa creare disordine nelle installazioni Java. Il percorso di Java è talvolta codificato in file bash. Ne ho trovato uno in /etc/profile.d/jdk.sh. Sovrascrive le tue impostazioni. Un'altra soluzione/soluzione è aggiornare il collegamento simbolico, nel mio caso era /usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45. Prova a cercare il testo java/bin in tutti i file bash.

+0

ha aggiornato il mio post. Passato a openjdk7 –

2

Un'altra soluzione:

export JAVACMD=$JAVA_HOME/bin/java 

impostazione/usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45 non ha funzionato per me

6

Creazione di un file .mavenrc sulla mia cartella home e aggiungendo il codice qui sotto ho risolto il problema per me. (Ubuntu 14.10, Maven 3.2.1)

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

nel privilegio super user sul vostro terminale aperto

vi etc/environment 

sul file aperto aggiungere JAVA_HOME percorso

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

Spero che si imposta la JAVA_HOME controlla se il tuo JAVA_HOME è impostato usando il comando

echo $JAVA_HOME 
0

Ho usato OpenJDK come default java, aggiornato JAVA_HOME in/etc/environment e tutti i problemi sono andati. Grazie per tutto il tuo impegno per aiutarmi con questo