2014-11-06 4 views
10

Я нахожусь на грани выпуска проекта, но, похоже, JAVA_HOME несовместим. Может быть, это было переопределено где-то еще? Я использую ubuntu 14.04, и у меня есть openjdk-7, java-7-oracle, java-8-oracle. По умолчанию Java был установлен с помощью update-java-alternativesПроблемы с несоответствием JAVA_HOME с 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) 

МВН -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" 

Но при выполнении МВН-релиз: подготовка, ниже того, что я вижу:

[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 домой на /usr/lib/jvm/java-8-orable/bin, но он сломал mvn-version чек.

Как это исправить? Спасибо за чтение

Не могу найти здесь, чтобы исправить это. Кто-нибудь сталкивался с чем-то похожим?

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> 

Я переключился на Java-7-оракула и до сих пор нет шансов:

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

Уважаемая вниз избирателей, Я не прошу о том, как установить Java Home. Это было установлено в

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

Тогда на следующий, когда я попытался запустить то же самое с Java 7

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

Это устанавливается в /etc/profile.d/jdk.sh по 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

у меня есть переключатели на d to openjdk 7, отредактировал jdk.sh, чтобы отразить это export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64, и ошибка пошла. Я запускаю другие известные проблемы (проблемы с разрешениями на теги папки странные). Так что это не связано с самим maven, я думаю. Но это странно, что он отлично работает для openjdk ...

+1

У вас есть полный JDK установлен или только JRE? Работает ли он с java-7? Какие параметры компилятора находятся в вашем pom? – Dmytro

+0

есть полный jdk был установлен. не работает с java 7. Я отредактировал post.thanks –

+0

возможный дубликат [Как установить Oracle в качестве Java по умолчанию в Ubuntu?] (Http://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as- the-default-java-in-ubuntu) – Joe

ответ

10

JAVA_HOME должен указывать на jre, а не на jdk. Затем установите:

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

Hello Это было на самом деле, прежде чем я перешел в oracle-java. 7 –

+0

Это сработало для меня. Благодаря! – thouliha

1

Я провожу довольно много времени, чтобы справиться с подобной ошибкой. Похоже, что диспетчер пакетов может создать беспорядок в установках Java. Путь к Java иногда жестко закодирован в файлах bash. Я нашел один в /etc/profile.d/jdk.sh. Он просто отменяет ваши настройки. Другое исправление/обходное решение для этого - обновить символическую ссылку, в моем случае это было /usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45. Попробуйте найти текст java/bin во всех файлах bash.

+0

обновил мое сообщение. Переключено на openjdk7 –

2

Другой обходной путь:

export JAVACMD=$JAVA_HOME/bin/java 

установка/USR/Библиотека/JVM/Java ⇒ /usr/java/jdk1.7.0_45 не работает для меня

6

Создание файла .mavenrc на моей домашней папке и добавление кода ниже решило проблему для меня. (Ubuntu 14.10, Maven 3.2.1)

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

в супер привилегии пользователя на терминале открытого

vi etc/environment 

на открытом файл добавить JAVA_HOME путь

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

Надеется, что вы установите JAVA_HOME проверьте, установлен ли ваш JAVA_HOME с помощью команды

echo $JAVA_HOME 
0

Я использовал OpenJDK по умолчанию java, обновил JAVA_HOME в/etc/environment и все проблемы пошли. Спасибо за все ваши усилия, помогая мне в этом

Смежные вопросы