web-dev-qa-db-ja.com

Cordova:JDK 1.8以上では要件チェックに失敗しました

Windows 7 OSでCordova 6.4.0を使用していますが、Androidバージョンをビルドしようとするとこのエラーが発生します。

Issue description

Java Home変数はJDKパスに正しく設定されていますが、なぜこの問題が発生するのかわかりません。何か提案がありますか?

70
MadNeox

私は私が問題の解決策を見つけたと思います。同じ問題に直面している人がいる場合に備えて、私は答えを投稿します。

1.8を含む以前のJDKをすべてアンインストールしますJDK 1.8をインストールします

47
MadNeox

何のために働いたのはjdk 9をアンインストールし、jkd 8.xを再インストールすることでした。

Macの場合は、アンインストールするために端末に行き、以下のステップに従ってください。

cd /Library/Java/JavaVirtualMachines

Sudo rm -rf jdk-9.0.1.jdk

次に、Oracleから.dmgパッケージをダウンロードしてjdk 8.xをインストールします。

29
Bandito11

あなたはより高いバージョンのsdkをアンインストールする必要はありません。 jdk1.8.0_161をインストールするか、すでにインストールされている場合はインストールしないでください。

下の図に示すように、システム変数ではなくJava_HOME USER変数を設定します。

enter image description here

こうすればより高いバージョンをアンインストールする必要はなく、問題は解決されます。

28
Rashmin Javiya

古いバージョンのJDKをアンインストールしてもうまくいきます。しかし、それは私が推測する回避策かもしれません。私は同じ問題に直面し、JDKの新バージョンと旧バージョンのJDKパスの両方が'path '環境変数で言及されていることに気付きました。

'pathの環境変数から古いバージョンのJDKパスを削除することは私にとってはトリックでした。誰かに役立つことを願っています。

16
Gandhi

Linux(Debian/Ubuntu)では、これはJava 1.8 SDKを選択することで解決できます。

Sudo update-alternatives --config javac

Java_HOME env変数を直接変更しても効果はありません。

編集:コメントへの返答:これはおそらく、パッケージマネージャを介した新しいDebian(そして明らかにUbuntu)JavaインストールがJava_HOME enviroment変数を使用しないという事実と関係があります。 JREの場所を決定します。詳細については、 this および この記事 を参照してください。

15
oseiskar

あなたは8以上のバージョンを持っているかもしれませんが、CordovaはJDK 1.8のみをサポートします。このリンクを見る Cordovaドキュメント

実際にJavaのバージョン番号をチェックするコードを見ました。次を探します。platform/Android/cordova/libmodule.exports.check_Java。 220行目。Java10が将来サポートされるというチームによる正規表現とコメントが表示されます。

既存の正規表現は、Java 10などの最新バージョンのJavaに対して実行すると失敗します。これは、Java 8または9が次の形式で保存されているためです。 10。**として、正規表現は1の形式のバージョンを探します。[8-9]。**

// Let's check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);

私の解決策:

インストーラは各バージョンを特定のフォルダにインストールするため、現在のバージョンのJREまたはJDKをアンインストールする必要はありません。

1-インストールバージョンJava 8 このリンクに従ってください

2 - あなたの環境変数を更新します。

  • JDKをインストールした場合はJava_HOME
  • JREをインストールした場合はJRE_HOME

jRE 8とJDK 8がインストールされている場所を指すようにします。

// On my machine   
C:\Program Files\Java\jdk1.8.0_171 // Java_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME

新しい端末セッションを開き、失敗したコマンドを実行してください。今動作するはずです。

うまくいきませんでしたか?

他の理由で失敗した場合、デバッグプロセスが可能です。

  • Java_HOMEおよびJRE_HOME変数がシステム変数であることを確認してください。
  • それらがあなたのユーザーのパスに追加されていることを確認してください パスに変数を追加してください
10
Gloire

私は、Java_HOMEが1.8を指しているのに対し、私のパス環境変数がJava 1.7を指していることを発見したので、パス変数を1.8に編集しても問題ありませんでした。

9
Iyke Perry

私の場合、Java_HOMEはC:\ Program Files(x86)\ Java\jdk1.7.0_55を指していました

私は書いたときここでcmdでJavaJava.exeパスと一緒にそれがC:\ Program Files(x86)\ Java\jdk1.7.0_55を出力しました、 Java_HOME変数を環境変数からC:\ Program Files\Java\jdk1.8.0_20に変更しました。 2個のjdkインスタンスとcordovaにはv1.8。*が必要です。

7
Mawardy

私は@Hozingtonに同意します。これは、CordovaコードのJavaバージョン検出のバグです。私がしたことは、

  1. JDK 10を保管する
  2. JDK 8をインストールする
  3. Java_HOMEをJDK 8のパスに変更し、path変数も変更します。
  4. "cmd"を再起動して、cordova buildをもう一度実行してください。

そしてエラーは消えました!

2
ceeko

このエラーメッセージは、ユーザーを混乱させます。成功画面は以下のようになります。 cordova build success

エラーメッセージが表示され、ユーザはビルドを修正しようとしますがJava_HOME configで失敗します。しかし、本当の問題はJava_HOMEだけではありません。

この問題は、Java_HOMEの正しい設定と「システム変数」のPathで修正します。 enter image description here

問題の解決に役立つことを願いますが、JDKを再インストールすることはできません。

2
Bangyno

パスやJava-homeを変更してもうまくいかない場合があります。追加する必要があります

C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools

環境変数への道にも。

2
Santosh

MadNeoxによって投稿された答えは正しいです。私は私がjdk 9をインストールした1.8バージョンと同様の問題に直面していました

私は最初にJDK 9を維持し、1.8を削除してみましたそれはエラーが表示されるでしょう要件チェックに失敗しました

それから私はjdk9をアンインストールして1を再インストールしてみました。今回はjavac-versionの実行に失敗したことを示していました

しばらくの間環境変数で遊んだ後、私はついに解決策を得ました

現時点で私のシステムにはjdk 1.8 Cordovaバージョンがあります:7.1.0

- [環境変数を開く]タブ - 新しいユーザー変数を作成するPATH - 次の値Cを指定します。C:¥Program Files¥Java¥jdk1.8.0_151¥bin

これであなたの問題は解決するはずです

答えはすでに与えられていますが、どこで問題が発生しているのかを判断するのに時間がかかりました。他の人の時間を節約することを期待してこの投稿をすることにしました。

2
Amey Bhivshet

MAC:に移動:/ライブラリ/ Java/JavaVirtualMachinesあなたが唯一のjdk1.8.0_201.jdkを持っていることを確認してください他のJDKを削除します

2

Windowsでうまくミックスするためには、次のことをする必要があります。

  1. JDK 1.8以上の任意のバージョンをダウンロードしてインストールします。
  2. 環境変数を開き、Java_HOMEという名前の環境変数を作成し、値をJDKインストールパスに設定します。 C:\Program Files\Java\jdk1.8.0_162は、値に\binを追加しないでください。

enter image description here

  1. システムパス変数にセミコロン;を入れて、この値をシステムパスに追加してください。例えばC:\Program Files\Java\jdk1.8.0_162\bin;ここでは\binが追加されます。

注:環境変数はトリッキーです。別の変数を開く前に、;で閉じる必要があります。そのため、値を追加する前に1つ、値を閉じるために値の後に1つ配置します。

enter image description here

  1. ターミナルを閉じて再度開いてから、前のコマンドを実行してください。
1
das sanctity

jDKのバージョンが多い場合は実行できます

export Java_HOME="/usr/local/env/Java/jdk1.8.0_131.jdk/Contents/Home/"

cordovaをビルドする前に、特定のバージョンのjdkを使用します。

1
Walterwhites

Jdk8とjdk9の両方がインストールされている場合は、バージョンを確認する必要があります。

パスとJava_HOMEが指している場所。

あなたが投稿したログでは、私はJava_HOMEがJDK9を導いていることがわかりました。

globelのJava_HOME env varをJDK 8をターゲットにするように変更するか、cordova CLIのみを使用する前にpowershellでJava_HOMEを変更することができます。

$env:Java_HOME="C:\Program Files\Java\jdk1.8.0_151"

**cordova build Android**
1

同じJDKバージョン(この場合は1.8)がPATH環境変数とJava_HOMEからアクセスできることを確認してください。例:Java_HOME=C:\Program Files\Java\jdk1.8.0_152の場合、PATH変数は、上のパスと、JDK/JREが既にPATH変数に記述されている場合の他のパスの前(存在する場合)に重要です。他のバージョンのJavaを使用しているアプリケーションが他にない場合は、他のバージョンをアンインストールすることを選択できます。

1
Aim

念のため、古いJDKフォルダの名前を_に変更しましたが、うまくいきました。

C:\Program Files (x86)\Java\_jdk1.7.0_40 
C:\Program Files (x86)\Java\_jre7
0
Livio

すべてのJavaインストールをアンインストールし、jdk-8u181-windows-x64を再インストールしました。この問題を避けるために私にはうまくいきました。

0

私はjdk1.8.0_201と同じ問題に直面しました。私はJava_HOME = C:\ Program Files\Java\jdk1.8.0_201を作成し、 "C:\ Program Files\Java\jdk1.8.0_201\bin"を追加したときに解決されましたパス変数

0
Samson Daniel

複数のJavaバージョンがインストールされており、それらを維持する必要がある場合は、次のことを確認する必要があります。

  • あなたのjdk1.8を指すJava_HOME
  • pATH変数で、jdk1.8\binパスが の前に その他のjdk\binパスであることを確認する必要があります。
0
fehrlich

Windows 10に(Open)JDK 8および11がインストールされていますが、同じ問題がありました。私にとっては、以下がうまくいった:

  1. Java_HOMEをJDK 8を指すように設定します(以前に多くの回答で言及されています)。
  2. PATHからJDK 11を削除(!)したことが判明しました - JDK 8を指すJava_HOMEパスは表示されますが、Cordovaは実際にPATHに含まれるJDK 11にアクセスしたため、Javaバージョンチェックが失敗しました。
0
Dominik

ubuntuユーザーのために私は答えを見ていましたが解決策を集めるのに時間がかかりました。今後の参考のために、コマンドを使用してデフォルトのSudoインストールをアンインストールしてください。

Sudo rm -r /usr/lib/jvm/jdk10.0.2

あなたが私のインストールしたバージョン10.0.2であなたのバージョンで上記のjdkを交換してください!次にOracleサイトにアクセスして、ここから からtar.gzをダウンロードしてください 。次に、ターミナルを使用して以下のコードを使用してhomeフォルダにファイルを抽出します。

tar zxvf jdk-8u201-linux-x64.tar.gz

あなたのJdkを交換してください、しかしそれが上のものと同じcordovaによって必要とされるのでjdk1.8を使用してください。次に、以下のコードを使って環境変数を設定します。

gedit ~/.bashrc

テキストエディタが表示されたら、このエクスポートを追加します。コンピュータを再起動した後に機能します

export Java_HOME=/home/abrsh/jdk1.8.0_201

ここで上記のコードabrshは私のユーザー名であり、jdk1.8.0_201は私がtar zxvfを使って先に抽出したフォルダーです。

0
abrsh

Cordovaの公式文書によると、JDK 1.8のみがサポートされています(2018年4月)。またはcordova内のバージョン検出スクリプトに問題がある可能性があります。

Cordova:要件のインストール

0
Abhay Gawade

コントロールパネルに移動し、古いJDKをアンインストールし、 https://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

問題はソートされます。

0

Android SDKはJava 9をサポートしていないようです。JDK 1.8に戻りたくない場合は、8にダウングレードしてください。 JDK 8は私のために働きますが、Java_HOME環境変数をあなたのJDKインストールの場所に正しく設定することを忘れないでください。

0
Dgoldenone

問題が解決しない場合は、

それを確認します :

  • Java_HOMEは、cordovaで利用可能なバージョンを参照します。
  • jdk/bin(およびJava_HOMEと同じjdk)上の 'path'変数ポイント
0
R.one
  1. コントロールパネルのホームへ
  2. 高度なシステム設定
  3. 環境変数
  4. Java_HOMEを選択してください
  5. 編集する
  6. 1.8の変数値
0
Salvin