web-dev-qa-db-ja.com

CordovaでビルドするとJava_HOMEが無効になります

OpenSuse Leap42.1のcordovaを使用してデバイス上のアプリをエミュレートしようとしています。
しかし、cordova runを使用してアプリをエミュレートしようとすると、次のエラーが発生します。

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

[編集] 3つのレベルでツリーを表示します:

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
12
Rafael Soufraz

私の特定のケースでは、すべてのJavaパッケージを削除して再インストールし、1つ追加します( 'instinct'の場合):
私は削除しました:
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 << --幸運にも私はそれを打った

メインフォルダ内のビンが表示されます。 javacと他のもので。
君たちありがとう!

7
Rafael Soufraz

コルドバはJDKをチェックしているため、JREではなくjavacが必要です。 check_reqs.js line 86を参照してください。あなたのコメントから、あなたはJDKに「このパスの中にbinフォルダはありません」と言っています。 binディレクトリ!

9
dan

あなたの道はこのようになるはずです

PATH=$PATH:$Android_HOME/bin:$Java_HOME/bin

そしてより export PATH

6
Bilal Shah

Java-X_X_X-openjdkパッケージでは少し誤解されています。特に、デフォルトのOracle表記に慣れている場合。

OpenJDKはJava Platformのオープンソース実装のプロジェクトであり、実際に許可するJDKパッケージではないため、JDKの部分は混乱しています。 Javaで開発します。(より正確な情報はこちら: http://openjdk.Java.net/install/index.html

TLDR:

  1. Java-X_X_X-openjdkは、OracleのJREに相当します。

  2. Java-X_X_X-openjdk-develは、OracleのJDKに相当します。

5
Mateusz Was

Java&JDKのインストールで問題が解決しました。Java&JDKをインストールして試してください。

アプリをビルドして実行するには、ターゲットにするプラットフォームごとにSDKをインストールする必要があります。または、開発にブラウザを使用している場合は、プラットフォーム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
0