web-dev-qa-db-ja.com

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

実行中

sencha app build production

次のようなエラーが表示されます。

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

値は '1.8'ですが、 '1.7'が必要です。エラー:Java.dllが見つかりませんエラー:Java SE Runtime Environmentが見つかりませんでした。

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バージョンのインスタンスをアンインストールし、最新のインスタンスを再インストールしました。それでも問題は解決しません。

76
Anand Gupta

何百ものトリックを試した後、ようやく成功しました。

Java.exejavaw.exejavaws.exeをすべて削除しました。

  1. Windows\System32

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

255
Anand Gupta

私の場合(Windows 7 64ビット)、私はちょうど次のようにしました:

  • Path環境変数からC:\ ProgramData\Oracle\Java\javapath;への参照を削除しました。
  • C:\ Windows\System32フォルダからファイルJavajavawjavawsを削除しました。

その後、私はすべての開いているコマンドラインコンソールを閉じ、それらを再び開いてJava -versionを実行しました。

31
aribeiro
  1. オープンregedit
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]に行く
  3. CurrentVersionを "1.8"から "1.7"に変更
30
lucken

再:Windowsユーザー

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

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

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

C:\ProgramData\Oracle\Java\javapath

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

だからあなたのパスはこのようになります - 例えば私の物

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)
19
Andrew

私の経験:

私はWindowsを使っています8.1そして私は1.8から1.7にJavaのバージョンをダウングレードしました、そして私は同じエラーを得ていました。

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

C:\ Windows\System32からJava.exejavaw.exeおよびjavaws.ex eを削除しましたフォルダとそれは私のために働いた。

11
RJ_Singh

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

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

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

  2. PATH環境変数の先頭にエントリ%Java_HOME%\binを置きます。 PATHの既存の値を追加します。例えば:

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

7
pratikch

エラーは明白です...

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

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

エラー:Java SE Runtime Environmentが見つかりませんでした。

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

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

正しい解決策は、あなたが達成しようとしているものによって異なります。 ..」

生殖ステップ

  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. users %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 Runtime Environmentが見つかりませんでした。

解決策

  1. OPの解決策 https://stackoverflow.com/a/29769311/1423507 「指を交差させて、ユーザーJava.exeにフォールバック%PATH%が存在し、フォールバック実行可能ファイルが正しいことを祈る」というアプローチです。エラー。再現手順を考えると、Java.exeからjavaw.exejavaws.exeC:\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/1423507 and https://stackoverflow.com/a/36516620/1423507 仕事しかしあなたは使用に戻ってJava.exe 1.7(例:CurrentVersionレジストリキーの値を、ユーザーのJava.exeにあるバージョンの%PATH%と一致するように更新します)。

  3. Java.exe 1.8がユーザーの%PATH%で最初に見つかったことを確認します(これを行う方法は無関係です)。

    • 最初にC:\Program Files (x86)\Common Files\Oracle\Java\javapathを含むようにユーザー%PATH%を更新します(そのディレクトリの実行ファイルが正しいことを確認してください)。
    • javaバイナリの絶対パスを最初に含めるようにユーザー%PATH%を更新します(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%
3
masseyb

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

2
turnip424

最新の自動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;」に置き換えます。

1
user20150603

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

私の場合、私はJavaをダウングレードしてApache ActiveMQのプリントアウトを使用しようとしました。すべてのJavaバージョンをアンインストールし、レジストリをクリーンアップした後、私は同じエラーを受けていました

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

私の場合は、環境変数に行き、パスを編集し、javapathの場所(C:\ProgramData\Oracle\Java\javapath)を開く必要がありました - JRE8バージョンから残っていた3つのファイル(Java.exejavaw.exejavaws.exe).

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

1
MikeG

私はwin7 64bitで。

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

次に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 Runtime Environment」をクリックすると、インストールされているJavaのさまざまなバージョンを確認できます。
  5. 「Java Runtime Environment」をクリックします - 右側に4-5行表示されます。 "CurrentVersion"を選択して右クリック(修正オプションを選択)してバージョンが "1.8"であることを確認してください。
1
Francis Bacon

Jdkフォルダを変数Java_HOMEに定義し、変数パスに%Java_HOME%を追加する必要があります。

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

cmd.exeを実行します。Java-versionは、Java_HOMEで定義した新しいバージョンを使用します。

1
smoka

aribeiroの答えが私のために働いています - 小さな変更を加えて

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

まず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_HOMEをJava 7のインストールディレクトリパスに変更します。

0
mtyurt

Java_BINおよびJava_HOMEシステム変数を変更してから、システムを再起動するか、おそらく再ログインしてください。それはまだjdk1.7パスであるため、あなたはそのエラーを抱えています。 Windowsでは、このようになります。 enter image description here

0
Tiina

Java SE Runtime Environment JRE 7をインストールするだけです。

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

それは私のために働きました。

0
Tenesi

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
Undigo Factory

この問題に対する1つの可能な解決策は、Sencha CMDフォルダにこのスレッドで推奨されているbatファイルを追加することです Sencha Cmd 5 + Java 8 Error

このコードでは、バッチの名前は "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

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

パーミッションに関しては非常に制限があるため、これが唯一の解決策でした。

0
Adilson Cabral

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

0
masoudifar

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

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

そして、それは1.7から1.8へのJavaバージョンのアップグレードにおける問題を解決するでしょう

0
user5645373

私のシステム: - 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パスを最初のエントリとして定義しました。

enter image description here

同じ変更をUser Variable:Pathにも複製しました。

enter image description here

上記の作業を終えた後、私はコマンドプロンプトを再起動し、Java -versionコマンドを実行し、問題は消えました。現在のバージョンとしてJava 8が表示されていました。

0
Philip Dilip

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

1.8を残しただけで、すべてが機能するようになりました。

0