2015-11-26 3 views
11

Я пытаюсь подражать приложению на своем устройстве с помощью cordova в OpenSuse Leap 42.1.
Но когда я пытался подражать приложение с cordova run я получаю ошибку ниже:Неверный JAVA_HOME при сборке с кордорой

cordova run 
Running command: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run 
ERROR: Error: Failed to run "java -version", make sure that you have a JDK installed. 
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads. 
Your JAVA_HOME is invalid: /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0 

ERROR running one or more of the platforms: Error: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run: Command failed with exit code 2 
You may not have the required environment or OS to run this project 

У меня есть Java-установлен и путь, установленный в ~/.profile.
Какая ошибка конфигурации в моей среде?

Ниже мой .profile:

JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0 
export JAVA_HOME 

ANDROID_HOME=/home/soufraz/Install/android-sdk-linux 
export ANDROID_HOME 

PATH=$PATH:$ANDROID_HOME:$JAVA_HOME 

Информация о версии Java:

java -version 
openjdk version "1.8.0_60" 
OpenJDK Runtime Environment (build 1.8.0_60-b27) 
OpenJDK 64-Bit Server VM (build 25.60-b23, mixed mode) 

А вот список папки Jvm:

ls -l 
total 28 
lrwxrwxrwx 1 root root 24 Nov 12 11:28 java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0 
drwxr-xr-x 1 root root 6 Nov 12 11:28 java-1.7.0-openjdk-1.7.0 
drwxr-xr-x 1 root root 6 Nov 11 17:26 java-1.8.0-openjdk-1.8.0 
lrwxrwxrwx 1 root root 21 Nov 11 17:26 jre -> /etc/alternatives/jre 
lrwxrwxrwx 1 root root 27 Nov 12 11:28 jre-1.7.0 -> /etc/alternatives/jre_1.7.0 
lrwxrwxrwx 1 root root 28 Nov 12 11:28 jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre 
lrwxrwxrwx 1 root root 27 Nov 11 17:26 jre-1.8.0 -> /etc/alternatives/jre_1.8.0 
lrwxrwxrwx 1 root root 28 Nov 11 17:26 jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre 
lrwxrwxrwx 1 root root 29 Nov 11 17:26 jre-openjdk -> /etc/alternatives/jre_openjdk 

[править] Просмотр дерева с три уровня:

tree -L 3 
. 
├── java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0 
├── java-1.7.0-openjdk-1.7.0 
│   └── jre 
│    ├── bin 
│    └── lib 
├── java-1.8.0-openjdk-1.8.0 
│   └── jre 
│    ├── bin 
│    └── lib 
├── jre -> /etc/alternatives/jre 
├── jre-1.7.0 -> /etc/alternatives/jre_1.7.0 
├── jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre 
├── jre-1.8.0 -> /etc/alternatives/jre_1.8.0 
├── jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre 
└── jre-openjdk -> /etc/alternatives/jre_openjdk 
+0

Внутри этого пути, не существует папка бин. Существует папка 'jre'. И внутри него - папка 'bin' и' lib'. –

+0

Я указал на jre/bin и ничего. Та же ошибка. –

ответ

7

В моем конкретном случае, я удалить и переустановить все пакеты Java и добавьте (для 'инстинкт'):
Я удалял:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin

И добавил:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
java-1_8_0-openjdk-devel < < - к счастью, я ударил его

БИН внутри появляется основная папка. С джаваком и другими вещами.
Спасибо, ребята!

+1

Спасибо, это очень полезно –

8

Кордова нуждается в JDK не JRE, так как он проверяет javac. См. check_reqs.js линия 86. Из ваших комментариев вы говорите, что «В этом пути нет папки с папкой» в JDK у вас должен быть каталог bin!

+0

Я обновил вопрос с помощью дерева '/ usr/lib64/jvm'. На самом деле нет папки с бинами. И имя главной папки - 'java-1.8.0-openjdk-1.8.0'. JDK. Мне нужно установить что-нибудь еще? –

6

Ваш путь должен быть, как этот

PATH=$PATH:$ANDROID_HOME/bin:$JAVA_HOME/bin

и чем export PATH

+0

Вы прочитали мой последний комментарий выше? –

+0

@ RafaelSoufraz да. вы указываете 'PATH' на' $ JAVA_HOME/jre/bin', однако его следует указывать на '$ JAVA_HOME/bin' –

+0

Вы краснели мой первый комментарий? «Внутри этого пути нет папки с бинами». –

5

Это немного недопонимание с пакетами java-X_X_X-openjdk. Особенно, когда вы используете стандартную нотацию Oracle.

Часть JDK запутанна, потому что OpenJDK - это проект реализации с открытым исходным кодом платформы Java, а не пакет JDK, который фактически позволяет вам разрабатывать Java. (точнее информация здесь: http://openjdk.java.net/install/index.html)

TLDR:

  1. Java-X_X_X-OpenJDK является JRE эквивалент Oracle.

  2. java-X_X_X-openjdk-devel - эквивалент Oracle JDK.

0

Проверка Java & JDK установки решить мою проблему .. Установить Java & JDK и попробовать ..

Чтобы построить и запустить приложения, вам необходимо установить SDKs для каждой платформы, которую вы хотите настроить таргетинг. Кроме того, если вы используете браузер для разработки, вы можете использовать платформу браузера, которая не требует каких-либо платформ SDK.

Чтобы проверить, удовлетворяет требованиям для построения платформы:

$ cordova requirements 
Requirements check results for android: 
Java JDK: installed . 
Android SDK: installed 
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23 
Gradle: installed 

Requirements check results for ios: 
Apple OS X: not installed 
Cordova tooling for iOS requires Apple OS X 
Error: Some of requirements check failed 
Смежные вопросы