レジストリキーエラー:Javaバージョンの値は「1.8」ですが、「1.7」が必要です


91

実行中

sencha app build production

次のエラーが発生します。

エラー:レジストリキー 'Software \ JavaSoft \ Java Runtime Environment' \ CurrentVersion '

値は「1.8」ですが、「1.7」が必要です。エラー:java.dllが見つかりませんでしたエラー:Java SEランタイム環境が見つかりませんでした。

java -version 、コマンドは以下を示しています:

Javaバージョン "1.8.0_40" Java(TM)SEランタイム環境(ビルド1.8.0_40-b26)Java HotSpot(TM)64ビットサーバーVM(ビルド25.40-b25、混合モード)

パスが間違っている場所を見つけることができません。何か案が?

-----------------------編集-------------------------- ----------------------

:Windows 7(64ビット)を使用しています。

sencha touch cmdをアンインストールして再インストールしてみました。しかし、それでも同じエラーです。

すべてのJavaバージョンのインスタンスをアンインストールし、最新のインスタンスを再インストールしましたが、それでも問題は解決しません。

回答:


291

何百ものトリックを試した後、ついに成功しました。

私はすべてを削除しjava.exejavaw.exeそしてjavaws.exe私から

  1. Windows\System32 そして

  2. Windows\SysWOW64 フォルダ。[x64システム(Win 7 64ビット)の場合は、ステップ2を試してください]


11
Win 10 64Bitユーザー:3つのファイルを削除System32すると問題が解決します。
iTurki

4
しかし、変更を表示するには、cmdを閉じて再度開く必要があり、java -versionと入力する必要があります。
クリスティアンB.17年

1
@SkepticScribbler:Java自体がどういうわけか混乱した場合に発生します。JRE 8が見つかった場所でJava 7 VMを実行しようとしています。誤って構成された環境でコマンドラインにjavaまたはjava -versionとだけ入力した場合でも、この問題が表示されることがあります。
Anand Gupta 2017

-この@AnandGupta暗闇の中でのショットではなく、解決するstackoverflow.com/a/53192247/1423507
masseyb

39

私の場合(Windows 7 64ビット)、私は次のことを行いました:

  • C:\ ProgramData \ Oracle \ Java \ javapathへの参照を削除しました以下からのパスの環境変数
  • C:\ Windows \ System32フォルダーからファイルjavajavawおよびjavawsを削除

その後、開いているすべてのコマンドラインコンソールを閉じ、再度開き、java -versionを実行しました


JDK5u14、JDK6u34、JDK7u51、JDK8u121を(この順序で)インストールすると、Windows 10でこの問題が発生しました。WindowsフォルダからJavaファイルを削除するだけでは不十分でした。また、PATH環境変数からパスを削除する必要がありました。
ええと、

32
  1. regeditを開く
  2. に行く [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
  3. CurrentVersionを「1.8」から「1.7」に変更します

2
ありがとう。それは私の問題を解決しました。SysWOW64の下で何かを削除する権限がありません。regeditでCurrentVersionを変更するだけで問題は解決しました。
クリッシュ

1
無関係なJavaバージョンをすべて削除するよりもはるかに簡単な解決策です。
フレッドアンドリュース

..しかし、それは何も解決しません。次に、インストーラーは不平を言いますが、Java 8が必要です。
user508402

この解決策のおかげで、長い間このエラーを解決しようとしていました
Abhishek Sawant

19

re:Windowsユーザー

いいえ。Javapath環境参照をPATH変数から削除しないでください。

レジストリが機能しなかった理由は、Oracle JavapathスクリプトがJREおよびJDKディレクトリの前にPATHシーケンスで実行される必要があるためです。これにより、現在のバージョンが整理されます。

このディレクトリを%PATH%変数のHEADに配置します。

C:\ProgramData\Oracle\Java\javapath

[またはデスクトップのどこにでも]

だからあなたのPATHはこのようなものになります-たとえば私のもの

PATH=C:\ProgramData\Oracle\Java\javapath;<other path directories>;E:\Program Files\Java\jdk1.8.0_77\bin;E:\Program Files\Java\jre1.8.0_77\bin

正しい現在のバージョンが表示されます。

C:\>java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

これは私のために働きます。Windows 7(64ビット)を使用しています。あなたが示唆したように、C:\ ProgramData \ Oracle \ Java \ javapathをPATHの先頭に移動しました。ありがとう!
ソフトウェア

1
やった!おかげで、コンピュータを再起動することを忘れないでください。
Sandoval0992 2018

12

私の経験:

Windows 8.1を使用していますが、JAVAバージョンを1.8から1.7にダウングレードしましたが、同じエラーが発生しました。

エラー:レジストリキー「Software \ JavaSoft \ Jaには値「1.7」がありますが、「1.8」が必要です。

C:\ Windows \ System32フォルダーからjava.exejavaw.exejavaws.ex e を削除しましたが、うまくいきました。


パスに他のJavaバージョンのJava実行可能ファイルがある場合、これは機能しません。
2017

9

同じ問題がありました。私にとってうまくいった簡単な解決策は、のエントリを並べ替えることPATHですJRE/JDK。この問題はJRE 8、インストールによっていくつかの実行可能ファイルがSystem32 or SysWOW64ディレクトリに配置されたインストール後に発生し始め、これらの実行可能ファイルはめちゃくちゃになっています。問題を解決するには:

  1. JDKホームを指す環境変数をとして作成しますJAVA_HOME

    set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_45

  2. エントリ%JAVA_HOME%\binを最初にPATH環境変数に入れます。の既存の値を追加していますPATH。例えば:

    path=C:\Program Files\Java\jdk1.8.0_45\bin;%path%


3
これは、Javaの複数のバージョンを並べて保持する場合、およびレジストリを変更してwindows \ systemフォルダーからファイルを削除する権限がない場合に最適なソリューションです。
ハインツ

3

java.exeファイルは削除しませんでしたが、システムの順序を変更しました-"path"変数-最初のエントリとして%JAVA_HOME%\ binを反映するようにしました。これでうまくいきました。


2

エラーは明示的です...

エラー:レジストリキー 'Software \ JavaSoft \ Java Runtime Environment' \ CurrentVersion 'の値は' 1.8 'ですが、' 1.7 'が必要です。

エラー:java.dllが見つかりませんでした

エラー:Java SEランタイム環境が見つかりませんでした。

... java.exe1.7実行可能ファイルを使用しようとしていますが、HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment>CurrentVersionレジストリキーの値が1.8であるています。

提案されたソリューションの繰り返し発生するテーマは、エラーが構成エラーであることです。エラーはさまざまな方法で解決できます(たとえば、ユーザー環境の再構成や、指を交差させたJava実行可能ファイルの削除などjava.exe、ユーザーに別のフォールバックが存在し、フォールバックが発生することを期待し%PATH%ています)java.exeが正しい実行可能ファイル)。

正しいです解決策は、あなたが達成しようとしているかに依存:「??あなたは、JDK-7をするために、JDK-8へのアップグレードしようとしているJDK-8からダウングレードしようとしています...」

再現手順

  1. jdk-7u80-windows-x64.exeをインストールします

ノート:

  • java.exeユーザーが利用できる実行可能%PATH%にインストールされていますC:\Windows\System32
  • インストールはユーザーを更新しません %PATH%
  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersion文字列のレジストリエントリが値で(特に)に作成されます1.7
  1. jdk-8u191-windows-x64.exeをインストールします

ノート:

  • ユーザー%PATH%が更新さC:\Program Files (x86)\Common Files\Oracle\Java\javapathれ、最初のエントリとして含まれます
  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersion文字列のレジストリエントリの値がに更新され、1.8
  1. ユーザー%PATH%環境変数を更新、削除C:\Program Files (x86)\Common Files\Oracle\Java\javapath

  2. 新しいコマンドプロンプト java -version

エラー:レジストリキー 'Software \ JavaSoft \ Java Runtime Environment' \ CurrentVersion 'の値は' 1.8 'ですが、' 1.7 'が必要です。

エラー:java.dllが見つかりませんでした

エラー:Java SEランタイム環境が見つかりませんでした。

ソリューション

  1. OPのソリューションhttps://stackoverflow.com/a/29769311/1423507は、エラーに対する「指が交差java.exeし、ユーザーにフォールバックが存在し、フォール%PATH%バック実行可能ファイルが正しいことを期待する」アプローチです。除去、再生ステップ与えjava.exejavaw.exe及びjavaws.exeから実行ファイルC:\Windows\System32(のみ私の場合)は、もはや有していないことになるjava.exeユーザーに存在する%PATH%誤差を生じる'java' is not recognized as an internal or external command, operable program or batch file.溶液のあまりありません。

  2. 答えはhttps://stackoverflow.com/a/35775493/1423507https://stackoverflow.com/a/36516620/1423507あなたが使用しているに戻すしかし仕事java.exeなどの更新(1.7をCurrentVersion一致させるために、レジストリキーの値をjava.exe、バージョンがで見つかりましたユーザー%PATH%)。

  3. java.exe1.8がユーザーで最初に見つかったことを確認します%PATH%(その方法は関係ありません)。

    • 最初%PATH%に含めるようにユーザーを更新しますC:\Program Files (x86)\Common Files\Oracle\Java\javapath(そのディレクトリの実行可能ファイルが正しいことを確認してください)
    • ユーザー%PATH%を更新して、最初にJavaバイナリの絶対パスを含めます(set PATH="C:\Program Files\Java\jre1.8.0_191\bin;%PATH%"
    • 設定されたJava固有の環境変数と更新ユーザー%PATH%彼らと(set JAVA_HOME="C:\Program Files\Java"; set JRE_HOME=%JAVA_HOME%\jre1.8.0_191; set PATH=%JRE_HOME%\bin;%PATH%

@whoever_that_downvotes-建設的なフィードバックがなければ、この回答は拡張できません。「なぜ」に関するコメントをドロップすると、コミュニティの利益のためにこの回答を改善できる可能性があります。
masseyb

2

Javaを実行している一部のWindowsサービスでこのエラーが発生しました。最後に、私のマシンで他のバージョンのJavaをアンインストールしようとしました。

私はたった1.8を残しました、そして今、すべてが働いています。


1

アリベイロの答えは私のために働きました-小さな変更

  • C:\ ProgramData \ Oracle \ Java \ javapathへの参照を削除しました。Path環境変数から
  • PATH環境変数の最初のエントリとして/ path / to / jdkhomeを作成しました。これだけで十分だと思います。

1

私はwin7 64bitで。

フォルダにjava.exe javaw.exe javaws.exeをコピーします C:\Program Files\Java\jre1.8.0_91\bin to the C:\Windows\System32.

次に、cmdを開き、java -versionと入力します。

C:\Users\HEcom>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

上記の前に、レジストリのCurrentVersionが1.8であることを確認してください

[スタート]メニューで「regedit」と入力して、レジストリエディターを開きます。

  1. 左側のレジストリエクスプローラー/ツリーメニューの「HKEY_LOCAL_MACHINE」に移動します
  2. 「HKEY_LOCAL_MACHINE」レジストリ内の「ソフトウェア」をクリックします
  3. 「ソフトウェア」レジストリ内の「JavaSoft」をクリックします
  4. レジストリの「JavaSoft」リスト内の「Javaランタイム環境」をクリックすると、インストールされているJavaのさまざまなバージョンを確認できます
  5. 「Javaランタイム環境」をクリックします。右側に4〜5行が表示されます。「CurrentVersion」を選択し、右クリック(変更オプションを選択)して、バージョンが「1.8」であることを確認してください

これは本当に悪い考えです。すでにパスにあるフォルダーにファイルを移動するのではなく、binariesフォルダーをパスに追加する必要があります。他の誰かがシステムのjavaを更新する必要があり、この「解決策」について知らない場合、それは恐ろしい頭痛を引き起こす可能性があります。そして、それはまさにopの問題の原因です...代わりにパスを修正してください。
Riwels 2016年

私はただ移動するだけにコピーするだけに変更してください。
Matthieu

1

この問題に対する私の解決策は、上記のすべてを読んで試した後です。

私の場合、Javaをダウングレードしてでプリントアウトを使用しようとしましたApache ActiveMQ。すべてのJavaバージョンをアンインストールしてレジストリを削除した後、同じエラーが発生しました

エラー:レジストリキー 'Software \ JavaSoft \ Java Runtime Environment' \ CurrentVersion 'の値は' 1.7 'ですが、' 1.8 'が必要です。

私の場合は、環境変数、編集パスに行くために必要なjavapath場所(オープンC:\ProgramData\Oracle\Java\javapath)を、それがあった- 3つのファイル(java.exejavaw.exejavaws.exeJRE8版から残りました)。

この事実を確認した後、私はそれらをC:\Windows\SysWOW64ディレクトリからの同じファイル(JRE7バージョンのものでした)に切り替えるだけで、すべてが完全に機能しました。


1

最新の自動Javaアップデートの後、コマンドプロンプトからJavaを実行できませんでした。

パス変数には「C:\ ProgramData \ Oracle \ Java \ javapath;」がありました。

「C:\ ProgramData \ Oracle \ Java \ javapath;」にcdできませんでした。それが存在しなかったので、コマンドプロンプトウィンドウから。

C:\ ProgramData \ Oracle \ Java \ javapath; 'を削除しました パス変数から「C:\ Program Files \ Java \ jre1.8.0_141 \ bin;」に置き換えます。


これは、回答というよりもコメントです。質問は非常に具体的なツールに関するものであり、Javaが実際に見つかったことを非常に明確にしています。
GhostCat 2017

1

変数JAVA_HOMEでjdkフォルダーを定義し、変数パスに%JAVA_HOME%を追加する必要があります

フォルダーsystem32内のjava.exe、javaw.exe、javawsの名前を削除または変更します

cmd.exe、java -versionを実行すると、JAVA_HOMEで定義した新しいバージョンが取得されます。


1

Anand Guptaの回答に加えて、必要なJava以外のJavaが使用されていないことを確認してください。ファイル名を指定して実行which javawhere javaWindows用)と実行可能ファイルが使用されているJavaの参照してください。使用しないものを削除し、必要なものが存在しない場合は、PATHに追加します。


0

まず、Java 7をインストールする必要があります。インストールしていない場合は、最初にインストールしてください(Linux、Mac、yum、apt、homebrewなど、何を使っているかわかりません。自分で調べてください)。

すでにJava 7を使用している場合は、次を実行します。

echo $JAVA_HOME

出力は次のようになります/usr/lib/jvm/java-8-oracle。このディレクトリの近くに、ディレクトリが表示されますjava-7。見つけたら、実行します

export JAVA_HOME=${java-7-dir}

{java-7-dir}ディレクトリパスで変更します。その後、コマンドを実行できます。

これは一時的な解決策にすぎません。永続的に変更するには、上記のコマンドを~/.bashrcファイルます。

編集:Windowsを使用している場合は、環境変数をJAVA_HOMEJava 7のインストールディレクトリパスに変更します。


@AnandGupta Windowsケースを追加しました。
mtyurt 2015

Linuxの場合、JavaバイナリへのパスをJAVA_HOMEに指定する必要があります。たとえば、/ usr / java / jdk1.5.0_07 / bin / javaです。Windowsの場合、インストールディレクトリだけで十分です。
Aditya K

0

Talend Open Studio 64ビットバージョンで同じ問題を共有するための短い寄稿。

  1. .. \ TOS_DI-Win32-20150702_1326-V6.0.0 \ TOS_DI-win-x86_64.exeを手動で起動します(スタートアップWindowsメニューをリンクしない)。
  2. そして、このレジストリエラーメッセージが表示されます

これを解決するには、c:\ ProgramData \ Oracle \ Java \ javapath \にあるすべてのjava.exe、javaw.exe、javaws.exeファイルを削除します。

そしてTOSは64ビットバージョンで正しく始まります!


0

システムパスから削除します。

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

また、Javaバージョンを1.7から1.8にアップグレードする際の問題を修正します


1
理由を教えてください。
Vinay Prajapati

0

「パス」内にあるjreバージョン1.8の別のjava.exeがどこかに存在し、可能であればそれを見つけて削除する必要があります。jreを必要とするアプリケーションのユーザーtempdataにある場合があります。


0

JAVA_BINおよびJAVA_HOMEシステム変数を変更してから、システムを再起動するか、おそらく再ログインしてください。それはまだjdk1.7パスであるため、エラーが発生しています。Windowsでは次のようになります。 ここに画像の説明を入力してください


0

Java SEランタイム環境JRE 7をインストールするだけです!

これで、「コントロールパネル」の「プログラムと機能」に「java 7」と「java 8」が表示されます。

それは私のために働いた。


0

この問題の考えられる解決策の1つは、Sencha CMDフォルダーに、このスレッドSencha Cmd 5 + Java 8 Errorで要求されたbatファイルを追加することです。

このコードでは、バッチの名前は「sencha.bat」になります。

@echo off
set JAVA_HOME=<YOUR JDK 7 HOME>
set PATH=%JAVA_HOME%\bin;%PATH%
set SENCHA_HOME=%~dp0
java -jar "%SENCHA_HOME%\sencha.jar" %*

senchaフォルダーに配置します。私の場合は

C:\Users\<YOUR USER>\bin\Sencha\Architect\Cmd\6.2.0.103

次のステップは、PATHEXT環境変数を変更することです。ユーザー変数を変更して、影響を最小限に抑えます。

から変わる

COM;.CMD;.EXE;.BAT;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

COM;.BAT;.EXE;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

アイデアは、ウィンドウが.exeファイルよりも最初に.batファイルを実行するようにすることです。senchaフォルダーには「sencha.exe」ファイルがすでにあるため、これは重要です。コマンドラインで「sencha」と入力すると、「sencha.bat」ではなく「sencha.exe」が実行されます。

これは、私がアクセス許可に関して非常に制限されているために機能した唯一のソリューションでした。


0

私のシステム:-Windows 8.1

Java環境

  • C:\ JavaEnvironment \ Java \ jdk1.8.0_161
  • C:\ JavaEnvironment \ Java \ jdk1.7.0_75

最近Oracle 11g XEをインストールしましたが、コマンドプロンプトで「java」コマンドにアクセスすると、上記のエラーメッセージが表示されました。

私は環境変数を確認し、シーケンスを確認し(以前の返信で述べたように)、システムPATH変数に次のエントリが最初のエントリとして含まれていることを検出しました:

C:\ OracleDatabase \ oraclexe \ app \ oracle \ product \ 11.2.0 \ server \ bin ;

シーケンスを変更し、JDKパスを最初のエントリとして定義しました。

ここに画像の説明を入力してください

ユーザー変数への同じ変更を複製しました:パス

ここに画像の説明を入力してください

上記のアクティビティを終了した後、コマンドプロンプトを再起動してjava -versionコマンドを実行すると、問題は解消されました。Java 8を現在のバージョンとして表示しました。


-1

同様の問題が発生しました。JDKおよびJREパスをパス変数の先頭に移動すると、問題が解決しました(System32に存在するものよりも優先されます)。

たとえば、これは私のものです:

ここに画像の説明を入力してください


-2

プログラムリストからJava 8をアンインストールします。以下の手順に従って:-

デスクトップで、画面の左下にあるスタートメニュー(またはスタートボール)をクリックします。コントロールパネルに移動します。[プログラムと機能]を​​クリックします。Java8を選択し、[アンインストール]をクリックします


-2

タスクマネージャーでjavaに関連するすべてのアプリケーションを終了し、C:\ windows \ System32からJava.exe、Javaw.exe、およびJawaws.exeを削除します。

これはあなたの問題を解決するはずです... :)


それが現在の問題をどのように解決するかを明確にしていただけますか?
Muhammad Mamoor Khan 2017

-3

これをやっただけでうまくいった

HKLM>ソフトウェア> JavaSoft> Javaランタイム環境

現在のバージョンを手動で1.7に変更するだけです。

笑...しかしそれはうまくいった!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.