Eclipse-Java(JRE)/(JDK)なし…仮想マシンなし


278

私は自分のコンピューターでEclipse v3.5(Galileo)を再実行しようとしています-以前問題なく実行しましたが、はこのエラーが発生し続けます。

Eclipseを実行するには、Javaランタイム環境(JRE)またはJava開発キット(JDK)が利用可能である必要があります。次の場所を検索した後、Java仮想マシンは見つかりませんでした:現在のパスのC:\ eclipse \ jre \ javaw.exe javaw.exe

JDKとSDKの両方の新規インストールを完了しました。

Windows 7(x64)を使用しています。

これどうしたの?どうすれば修正できますか?

ipconfig / tracert /またはpingを実行できません。


3
Java Runtime EnvironmentJREはSDKではありません...
user85421

1
JREをインストールします。これにより、パスにjavaw.exeが追加されます。JDKにはありません。
するThorbjörnRavnアンデルセン

12
@Carlos、各JDKはプライベートJREをもたらします。
–ThorbjørnRavn Andersen-2010

3
@Thorbjørn:そしてポイントは何ですか?JDKには公開 JRE も含まれていることは知っています。「Javaランタイム環境はSDKではありません」と書いたが、「1月11日に編集される前に」元の投稿を読んで、「Javaランタイム環境(SDK)または...」と書いた理由を理解する必要がある
user85421

11
Eclipseをインストールした後、最近別のパスにJDKをインストールした場合、この問題に直面する可能性があります。これは、eclipseが初めてセットアップされるときにeclipse.iniでJDKパスをハードコードするためです。eclipse.iniで正しいJDKパスを変更するだけです。これでこのエラーは解決するはずです。
Rajaraman 14

回答:


221

Eclipseはデフォルトでデフォルトの " java.exe"で起動しようとします(最初に参照されるものPATH

覚えておくべき3つのこと:

  • JREまたはJDKの「インストール」は、別のコンピューターから解凍またはコピーするのと同じくらい簡単です。特別なインストール手順はなく、必要なだけ多くの異なるJVMバージョン(1.4、5.0、6.0 ...)を使用できます。 、ディスクのほとんどどこにでも「インストール」(コピー)されます。
  • 常に最新のJREで Eclipseを実行することをお勧めします(最新のホットスポットの進化の恩恵を受けるため)。あなたはできる:
  • Eclipseセッション内で参照するJVM は、Eclipseの起動に使用されるものと限りません
    • Eclipseを起動するにはJREだけが必要ですが、Eclipseが起動したら、プロジェクトのJDKを登録する必要があります(特にJavaソースとデバッグの目的で、理論的にはコンパイル用ですが、Eclipseには独自のJavaコンパイラーがあります)。注:プログラムを実行するのに十分なため、Eclipse内のJREですが、JDKではさらに多くの操作が可能です。
    • Eclipseにデフォルトで登録されているJavaはセッションの起動に使用されるものですが、古いSDK(Sun以外のSDKを含む)を登録して、プログラムを実行/デバッグするのと同様のJREでデバッグすることができます。実際に使用されます。

インストールされているJRE


2012年6月、jmbertucciのコメント:

Windows 7 64ビットを実行していて、32ビットJREをインストールしました。64ビットJREを探すEclipse 64ビットをダウンロードしました。私は64ビットのJREを持っていなかったため、エラーをスローしました。

私はJavaの手動インストールページ(直接アクセスすることはできませんでした)にアクセスして、64ビットバージョンをインストールしました。「すべてのオペレーティングシステム用のJavaダウンロード」を参照してください。それだけで十分でした。


2016年4月:Steve Mayneコメントに追加:

eclipse.ini正しいJavaパスを参照するようにファイルを編集する必要がありました-にPATH値がある場合、Eclipseは環境をまったく使用しませんeclipse.ini


42
この質問/回答は少し古いですが、この問題が発生していたので、メモを投稿します。Win7 64ビットを実行していて、32ビットJREをインストールしました。私は、64ビットJREを探すEclipse 64ビットをダウンロードしました。私は64ビットのJREを持っていなかったため、エラーをスローしました。Javaの手動インストールページ(直接アクセスすることはできませんでした)にアクセスして、64ビットバージョンをインストールしました。java.com/en/download/manual.jsp 必要なのはそれだけでした。
jmbertucci

2
@Nuktu:回答にjmbertucciのコメントを追加しました
VonC

@jmbertucci:メモありがとうございます。見やすくするために回答に追加しました。
VonC、2012年

2
@VonC eclipse.iniファイルを編集して正しいJavaパスを参照する必要がありました-eclipse.iniに値がある場合、Eclipseは環境PATHをまったく使用しません
Steve Mayne

1
@SteveMayne興味深い、ありがとうございます。より見やすくするために、回答にコメントを含めました。
VonC

141

このファイルをコピーしてください:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

Eclipseフォルダーへ

* Windowsでのみテスト済み

Eclipseフォルダー内のjavaw.exeの置き換え


私はこの答えとして簡単な解決策を探していましたが、誰かが同様の状況にある場合、eclipse.iniファイルのvmディレクトリを変更すると解決する可能性があるため、うまくいきませんでした。
ノハカリーム2014

3
うまくいきませんでした。エラー:レジストリキー「Software \ Javasoft \ Java Runtime Environment」を開いています。jre7(私の場合)フォルダー全体をEclipseディレクトリにコピーし、名前をjreに変更する必要がありました。その後、うまくいきました。
CuriousMarc 2014年

誰かが失敗した場合は、jreフォルダーをeclipseフォルダーにコピーしてみてください。
Arthur Zhixin Liu 2017

@NohaKareemあなたのアドバイスは私にとって最も近いものでした。残念ながら、私の「jre」フォルダーには「lib」しか含まれていなかったため、Javaの「jdk」フォルダー(350MBでは大きいが、内部に「bin」フォルダーがありました)をコピーして、「jre」の名前を変更できました。ありがとう。
Mindsectチーム

32ビットと64ビットの両方のJavaがインストールされているが、32ビットのJavaがパスにある場合、64ビットのEclipseを開こうとすると失敗し、64ビットのjavawファイルをexclipseの隣に配置すると機能します。
DiamondDrake

83

のみを設定することに関する他のすべての答えJAVA_HOMEは完全に正しくはありません。つまり、Eclipseはを参照しませJAVA_HOME。エラーメッセージをよく見てください。

...現在のパスに

それは文字通りではPATHなく、言ったJAVA_HOME

右クリックマイコンピュータを選択しますプロパティ(またはキーを押しWinkey+はPause)、タブに移動上級ボタンをクリックし、環境変数の中に、システム変数の選択下部のリストPath(いや、ない Classpath)、をクリックし、[編集]をし、追加し;c:\path\to\jdk\binた値の最後に。

または、存在しない場合は、JAVA_HOME環境変数を追加してで使用することもできますPATH。同じダイアログで[ 新規 ]をクリックJAVA_HOMEし、の値を追加しますc:\path\to\jdk。次に;%JAVA_HOME%\binPath設定の値の最後に追加できます。


2
動作しませんでした:)環境名のデータ:パス---値:C:\ Program Files(x86)\ Java; C:\ Program Files(x86)\ Java \ jdk1.6.0_14 \ bin
Wallter

1
スペースのあるパスは引用符で囲む必要があります。
BalusC 2010年

私のパスは以前に完全に構​​成されていました。Borlandコンパイラはパスフィールドを編集し、javaパスを独自のパスに置き換えました。
Akhil Jain

1
@BalusC実際には、WindowsでPATH環境変数を構成するときに、パスを引用符で囲む必要はありません。セミコロン(;)で区切るだけで十分です。
informatik01

これがそれを解決する答えです。数時間調べた後、同じ問題を抱えている人に必要なのは次のとおりです。1)すべてが64ビットであることを確認します。「program files(x86)」ではなく、「program files」に自動的にインストールする必要があります。2)-VMを他の回答のbinフォルダーに書き込みます。3)この男が言ったようにパスを設定します。コマンドラインからjavaを実行できない場合、何も起こりません。4)喜ぶ
triplebig 2014

36

コントロールパネルからWindowsのシステムプロパティを開き、環境変数セクションを探します。

  • JDKがインストールされているディレクトリ(C:\ Program Files \ Java \ jre6など)を指すJAVA_HOMEエントリを追加します。
  • パスエントリを見つけ、次の行を末尾に追加します;%JAVA_HOME%\ bin
  • 変更を承認します
  • 新しい環境を認識するようにEclipseを再起動します

ほとんどのJavaツールは、JAVA_HOME環境変数を使用するか、Path環境変数でjava.exe / javaw.exeを検索することにより、Javaインストールを検出できるようになります。


3
name:JAVA_HOME value: "C:\ Program Files(x86)\ Java \ jdk1.6.0_14;%JAVA_HOME%\ bin"を
追加して

24

Eclipseの64ビットバージョンをダウンロードした場合、JREの64ビットバージョンを探します。32ビット版のEclipseをダウンロードすると、JREの32ビットバージョンを探します。

私がしたことは、JREの32ビットバージョンと64ビットバージョンの両方をインストールすることでした。SUN Oracleのサイトから入手できます。JAVAサイトは、32ビットバージョンのJavaを自動的にインストールするようです。それはウェブブラウザのせいだと思います。


2
ladookieが言ったように、問題はJavaのWebサイトでブラウザが不正なコードを実行し、JAVAの間違ったバージョンを取得することでした...
Wallter

1
スピードバロンは完全にここです。環境変数PATHを変更する場合は、必ず正しいバージョンのパスを指定してください。私のWindows 7 64ビットシステムには32ビットJREがインストールされている(理由がわからない)ため、64ビットバージョンをインストールし、PATHに新しいディレクトリを追加しました。今はうまく動いているようです。
musicliftsme 2011

1
これが私の問題でした。Windowsは64ビットC:\Program Files\Javaと32ビットをにインストールすることに注意してくださいC:\Program Files (x86)\Java
スタイフル2013

10

私がする必要があるのは「パス」を次のように変更することだけであることがわかりました:

「C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Program Files(x86)\ Java; C:\ Program Files(x86)\ Java \ jdk1.6.0_14 \ bin 」

それはそれをしました:)


1
ところで、jdk1.6.0_16以降を使用してください。jdk 1.6.0_14を使用すると、Eclipseでブレークポイントを正しく使用できません:bugs.eclipse.org/bugs/show_bug.cgi
id=

9

私は64ビットのWindows 7を使用していますが、Eclipseでも同じ問題が発生しました。それを機能させるには、インターネットエクスプローラー(64ビットバージョン)を使用してJavaをダウンロードする必要がありました。これは、Javaに64ビットバージョンをインストールさせる唯一の方法でした。firefoxを使用してJavaをインストールすると、32ビットバージョンが自動的にインストールされました(とてもばかげた!)。また、Eclipse 64ビットバージョンは、Java 32ビットバージョンを検出しません。


私はもう問題を抱えていません-しかし、これは良い解決策のようであり、理にかなっています-これを他の64ビットブラウザでテストするのは興味深いでしょう...
Wallter

7

一言で言えばソリューション:

[マイコンピュータ]を右クリックし、[プロパティ]、[システムの詳細設定]の順にクリックします。[システムプロパティ]ウィンドウがポップアップし、[詳細]タブで環境変数を選択します。[環境変数]ウィンドウがポップアップし、[システム変数]セクションで変数を探してPATH、値を編集します、それをバージョン(jre6、jre7など)を使用しているjreに変更します。C:\Program Files\Java\jre7\bin


7

ほぼすべての更新で変更されるため、Windowsパス変数に依存しないでください。たとえば、クロム(64ビットマシンでは32ビット)のJavaアップデートは、システム全体の64ビットJVMを32ビットJVMに置き換えます。また、このエントリはeclipse.iniの最後のエントリでなければならないことに注意してください。そうでない場合は機能しません。また、特に明記されているように、JAVA_HOME変数はeclipse.exeによって評価されません。

JAVA_HOMEとパスが有効に構成されている場合でも、この問題が発生する可能性があるため、最も簡単な方法は、eclipseインストールフォルダーでeclipse.iniを開くことです

-vm

C:\ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

C:\ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exeをjdkまたはjreのパスに置き換えます


この回答が正しいものになるように投票します。ほぼすべての更新で変更されるため、Windowsパス変数に依存しないでください。たとえば、クロム(64ビットマシンでは32ビット)のJavaアップデートは、システム全体の64ビットJVMを32ビットJVMに置き換えます。このエントリーはeclipse.iniの最後のエントリーでなければならないことにも注意してください。そうでない場合、機能しません。そして、特に明記されているように、JAVA_HOME変数はeclipse.exeによって評価されません。それに応じて回答を編集してください。
Heri 2014

これが実際の問題を直接解決するので、これが最良の答えです。Eclipseは特定のパラメーターごとにパスを探しており、その値は間違っています...したがって、値を修正すると問題が解決します。
-BuvinJ

6

あなたにはeclipse.ini、ファイル、あなたは同じ場所にポイントにVMへのパスを更新する必要がjavaw.exeマシンにインストールされています。


6

心配しないでください。このエラーと致命的問題によっても台無しになりました。私がそれを入手したとき、私はAndroidプログラミングをやめようとしても、とてもイライラしていましたが、最初にこのコードをコピーしてシステム変数に貼り付けました。パスの下に...

C:\ Program Files; C:\ Winnt; C:\ Winnt \ System32; C:\ Program Files \ Java \ jre6 \ bin \ javaw.exe

次に、このパスの下に「jre」があるように、パスから「jre」フォルダをコピーします

            C:\Program Files\Java

eclipseフォルダーに貼り付けると、eclipse.exeファイルが置かれている場所を意味します。この場所で日食をセットアップしたように

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

Eclipseフォルダー内に "jre" FOLDERを貼り付けます。「jre6」がある場合は、「jre」という名前に変更して、...日食を実行すると、解決策が得られます...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

その他の解決策:2

上記の手順で問題を解決できない場合は、次の手順に従ってください

  1. C:\ Program Files \ Java \ jre6 *などのJavaパスからフォルダー「jre」をコピーし、それをeclipseディレクトリーに貼り付けます(eclipseはどこにありますか)
  2. eclipse.iniファイルに移動し、それを開きます。
  3. 次のようにjavaw.exeファイルのディレクトリを変更します

-vmF:\ Softwares \ LANGUAGES SOFTEARE \ Android Setup \ eclipse Indigo version 32 Bit \ jre \ bin / javaw.exe

今度はeclipseを開始するときに、javaw.exeを検索します。これにより、eclipse.ini内のパスが検索されます。これは、同じフォルダーにあるため、javaw.exeを開始し、動作を開始するためです。 。

まだクエリがある場合は、もう一度質問できます。私のプロフィールに移動して、私のメールIDを確認してください。スタックオーバーフローフォーラムが大好きで、プログラマになりました。*


5

eclipse.iniファイルを編集して、新しく更新されたJDKを更新しました。以前はjdk1.7.0_09でしたが、現在はjdk1.7.0_80に更新していて、Eclipseがこのエラーをスローしました。

Eclipseを実行するには、Javaランタイム環境(JRE)またはJava開発キット(JDK)が利用可能である必要があります。次の場所を検索した後、Java仮想マシンが見つかりませんでした:C:/ Program Files / Java / jdk1.7.0_09 / bin / javaw

eclipse.iniを更新した後、

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipseは正常に動作します。


1
これは私のために働いたソリューションです-ラッキーに感謝します。Eclipseはiniファイルで参照されているJREをロードするため、受け入れられた回答は、env PATHを参照するよう提案する際に正しくありません。
Steve Mayne


3

環境変数のPATH変数にC:\ Program Files \ Java \ jdk1.8.0_92 \ binを追加した後、Eclipseで同じエラーが発生した場合

EclipseフォルダーにあるEclipse構成設定ファイルを確認してください。C:\ program Filesにある同じjdkパスを確認する必要があります

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

お役に立てば幸いです。


2

私がそのような問題を抱えていたとき、私の場合、x64 JDK + JREをx86 Eclipseと共にインストールしました。したがって、x86 JDK + JREをインストールすると問題が解決しました:)またjre、eclipseフォルダにフォルダを作成binし、ローカルパスからにフォルダをコピーC:\Program Files (x86)\Java\jre7しました..\eclipse\jre\


2
  • 64ビットOS->必要なもの:64ビットJavaおよび64ビットEclipse
  • 32ビットOS->必要なもの:32ビットJavaおよび32ビットEclipse

64ビットコンピューターでJavaバージョンをデフォルトのアップデートで更新する場合(そして32ビットブラウザーを使用している場合)、Javaは32ビットバージョンをインストールします。64ビットのJavaバージョンを見つけてインストールする必要があります。


1

先週、私はこの正確な問題を抱える同僚がいました。彼はEclipseのx64バージョンとx64 JDKをインストールすることで修正しました。

編集:彼は必要なプラグインをインストールした後、彼の古いワークスペースを再利用したので、それは大した問題ではないはずです


1

それを行う簡単な方法があります。cmd x64を実行するだけです。スタートメニューの検索バーにcmd x64と入力するとantが見つかります:)または、プログラムファイル(x86)へのパスを設定する必要があります...例:C:\ Program Files(x86)\ Java \ jre6


1

環境変数Put ";"にEx:C:\ Program Files \ Java \ jre5 \ binのJREパスを追加するだけです。すべてのパスの間。次に、eclipse.exeをクリックします。


1

このエラーが発生する理由は、Eclipseを起動するためにJREが必要なためです。最初に検索するのは現在のディレクトリ、次にeclipse.iniファイル、最後にシステムパスです。したがって、これらの3つの場所のいずれでも正しいjvm(ビットバージョンが異なる)を見つけることができない場合は、クリブします。

推奨される方法は、eclipse.iniファイルを編集し、ファイルに次の行を含めることで、vm / jreを探す場所をeclipseに正確に伝えることです。

-vm
[java.exeへのパス](通常は「C:\ Program Files \ Java \ jre7 \ bin」の下にあります)

PS eclipse.iniを編集するには、移動して、編集してから貼り付ける必要がある場合があります。

出典:-wiki


1

まず、YouYouの解決策に感謝します。YouYou(https://stackoverflow.com/a/14464653/801919)で回答を試しました。最初は、私にはうまくいきませんでした。以下は、それを機能させるために必要な手順です。

  1. 最初は、新しいマシンにJavaをインストールしていませんでした。したがって、私はそれをインストールする必要がありました(http://java.com/en/download/manual.jspからダウンロード)。
  2. 64ビットOSを実行しています。しかし、ダウンロード中に、ダウンロードするJavaのバージョンを選択するのに役立つメッセージが表示されました。Choose the 32-bit download to use with a 32-bit browser.したがって、32ビットバージョンをダウンロードしました。
  3. 次に、私はhttps://stackoverflow.com/a/14464653/801919に記載されている手順に従い、解決策を得ることを望んでいました。
  4. 他のエラーが発生しました: Java was started but returned exit code=13
  5. 次に、64ビットバージョンのJavaをインストールしました。
  6. javaw.exeそのバージョンからコピーしました。

...そしてEclipseが動作し始めました!!! ヤイ!


1

さて、この答えは、他のすべてを試してもうまくいかなかった人への回答です。これがAndroidスタジオであるEclipse、他のすべてが失敗したときに私は通常これを行います。

  1. Android sdkフォルダーを見つけて、テキストエディターでandroid.batファイルを開きます
  2. これらのようなコマンドはファイルの先頭にあります。

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. それらを

    set java_exe=< java.exeファイルへのパス(jdkフォルダー/ binディレクトリ内にあります) >

  2. 行を見つける

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. これをset swt_path=< それぞれのswt.jarファイルへのパスに置き換えます。x86の場合はsdk \ tools \ lib \ x86にあり、x64の場合はsdk \ tools \ lib \ x86_64にあります >
  2. ファイルを保存して閉じます。これで準備は完了です。

1

JAVA_HOMEを正しいフォルダに設定してみてください。Windowsで環境変数を設定するためのGoogle。


私はこれらの指示に従いました:wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.htmlしかし、役に立ちませんでした
Wallter

私はそれを言うのが嫌いです...しかし、あなたは再起動しましたか?
Topher Fangio、2010

Javaをインストールするために再起動する必要はありません。
するThorbjörnRavnアンデルセン

1
JAVA_HOMEも必要ありません。これは、javaw.exeを見つけるために使用されるPATHです。(JAVA_HOMEはantのような他のいくつかのアプリケーションで使用されるので、それを設定するのは間違いありません)
user85421

1

私もこの問題に遭遇しました。私の場合は次のとおりです:

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

本文:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

レジストリ値のタイプPathが異なることがわかったので、次のコマンドでパスが有効かどうかを確認しました。

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

その結果、次のコマンド(Setx)でローカル(現在のユーザー)環境をリセットしました。

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

ただし、現在のプロセスでは、これらの変更を他の実行中のプロセスに伝播することはできません。

ただし、レジストリエディターでユーザー環境変数を直接変更すると、

環境変数へのこれらの変更は、すぐには変更されません。たとえば、変更を加えた後に別のコマンドプロンプトを起動すると、環境変数には以前の(現在ではない)値が反映されます。変更は、ログオフしてから再度ログオンするまで有効になりません。

ログオフせずにこれらの変更を有効にするには、システム内のすべてのウィンドウにWM_SETTINGCHANGEメッセージをブロードキャストして、関連するアプリケーション(Windowsエクスプローラー、プログラムマネージャー、タスクマネージャー、コントロールパネルなど)が更新を実行できるようにします。

詳細については、環境変数をシステムに伝達する方法を参照してください

ここでは、それを行うためのPowerShellスクリプトを指定します。

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment

0

[ウィンドウ]> [設定]> [Java]> [インストールされているJRE]を確認します。そこに何かがあることを確認してください。ない場合は追加してください。

最近JDKを更新しましたか?


はい、Androidアドオンを追加しようとしました。しかし、(トファーファンジオが言ったように)いいえ、今はEclipseを起動できません。
Wallter、2010年

0

JDKはデフォルトのパスにJVMをインストールしません。

Antのように実行するために外部ツールが必要でない限り、Eclipseを実行するには非JDKで十分です。このようなJVMをインストールする最も簡単な方法は、http://java.comにアクセスして、インストールしたいものを何でもインストールすることです。

次に、Eclipseバイナリをもう一度ダブルクリックします。


再インストールしました(再インストールするかどうかも尋ねられました)。(私はGoogle Chromeプラグイン
14-

java.comにアクセスしましたか?javasoft.comではありませんか?
–ThorbjørnRavn Andersen、2010

0

JAVA_HOME変数とJAVA_HOME / binをevnrionmentパス変数に設定します。


このように: "C:\ Program Files(x86)\ Java; C:\ Program Files(x86)\ Java \ jdk1.6.0_14 \ bin"?-それでも機能しませんでした:)
Wallter 2010年

パス変数でJAVA_HOMEを参照するには、それを埋め込む必要があります:%JAVA_HOME%\ bin
Heri

私(Windows 10 64ビット+ Eclipse 4.10)のトリックは、JAVA_HOME環境変数に加えJRE_HOMEて、ロケーションの場所に設定された変数を追加することでしたjavaw.exe(おそらく常にインストールされているJDKのbinフォルダーです)。 )。
ガイアブラハム

0

同じ問題(Windows 7 x64、64ビットJDK、32ビットEclipse)があり、2つの解決策が見つかりました。

  • Eclipseの64ビットバージョンをインストールします(ダウンロードページの[開発ビルド]タブをクリックすると表示されます)。
  • 32ビットバージョンのJDKをインストールします。

参照してくださいが、私がx64を使用していたWindows 7 x86を使用していました---他の人がこの問題は、彼らのWebページがどのように「バージョンを検出する」か(つまり、x64またはx86)のプログラミングにおけるSUNの一部の問題である可能性があると述べました使用する必要があります
Wallter 2010年

訂正、私はWindows 7 x64
Tim

0

私も同じ問題を抱えていました。修正する簡単な方法は、JREとEclipseの両方をx86またはx64としてインストールすることでした。彼らのビットタイプが一致しないとき、日食はそれを見つけることができませんでした。したがって、それらを一致させるためにアンインストールして再インストールすることがそれほど重要でない場合は、そうします。

最終的にインストールしました:Javaランタイム環境1.7.0.3(64ビット)とEclipse Indigo(3.7)(64ビット)

その後、うまくいきます。


0

javawだけをコピーすると、2番目のエラーが発生しました。java.dllファイルがなく、それをコピーしてもeclipseが起動しませんでした。jdkフォルダー全体をeclipseフォルダーにコピーし、idの名前をjreに変更しました。問題が解決しました。

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