web-dev-qa-db-ja.com

javacがWindowsのコマンドプロンプトで機能しない

WindowsコマンドのPromptでjavacを使用しようとしていますが、うまくいきません。

ディレクトリ"C:\Program Files\Java\jdk1.6.0_16\bin\"PATH環境変数の末尾に追加した後、Javaコマンドは正常に機能しますが、javacを使用すると次のエラーが表示されます。

'javac'は、内部コマンドまたは外部コマンド、操作可能プログラム、またはバッチファイルとして認識されていません。

121
Domenic

コマンドプロンプトが開いているときにコントロールパネルに追加しても、現在のコマンドプロンプトには影響しません。終了して再度開くか、単に次のようにする必要があります。

set "path=%path%;c:\program files\Java\jdk1.6.0_16\bin"

確認のために、以下を実行してください。

echo %path%

あなたのコマンドからプロンプトを出して、それが何であるかを私たちに知らせてください。

そうでなければ、次のことを試して、そのディレクトリにis javacがあることを確認してください。

"c:\program files\Java\jdk1.6.0_16\bin\javac.exe"

コマンドプロンプトから。また、which executable(もしあれば)がこのコマンドで使用されていることを示すこともできます。

for %i in (javac.exe) do @echo %~$PATH:i

これは、一部のUNIXタイプのオペレーティングシステムにおけるwhichおよび/またはwhenceコマンドに似たきちんとしたトリックです。

150
paxdiablo

Windows OSは、現在のディレクトリとPATH環境変数にリストされているディレクトリで実行可能プログラムを探します。 JDKのプログラム(例えばJavaコンパイラjavac。 PATHに "\ bin"ディレクトリを含める必要があります。

Windows XP/Vista/7/8でPATH環境変数を編集するには

  1. コントロールパネル⇒システム⇒システムの詳細設定

  2. 「詳細設定」タブに切り替えてください。⇒環境変数

  3. 「システム環境変数」で、下にスクロールして「PATH」を選択します。⇒編集

((続行する前に次の3回を読んでください。THERE IS NO UNDO))

[変数値]フィールドに、 "c:\ Program Files\Java\jdk1.8.0_xx\bin"を挿入します(xxをアップグレード番号に置き換え、これがJDKのバイナリディレクトリであることを確認します!!!)ディレクトリの後に、セミコロン(;)を続けて、JDKのバイナリディレクトリを他の既存のディレクトリから区切ります。既存のエントリを削除しないでください。そうでないと、一部の既存のアプリケーションが実行されない可能性があります。

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Screenshot

86
mike

長いGoogleの後、私はjavac.exeがJDKの中になければならないことを知るようになりました(C:\ Program Files\Java\jdk(バージョン番号) )\ bin)内にないJRE(C:¥Program Files(x86)¥Java¥jre7¥bin) "JREにはコンパイラは付属していません。JREは単なるJavaランタイム環境です。必要なのはJava開発キットです。"コンパイラjavacを使うために

jreの中でbinを指しているとjavacは動作しません

Cmdでjavacを使用するには、JDKがシステムにインストールされている必要があります。

javacパスの場合

path = C:\ Program Files(x86)\ Java\jre7\binこれは間違っています

path = C:¥Program Files¥Java¥jdk(バージョン番号)¥binこれは正しいです

"javac.exe"が "C:\ Program Files\Java\jdk(バージョン番号)\ bin"の中にあることを確認してください

JREとJDKは混同しないでください。両者はまったく異なります。

このリンクからJDK plsをダウンロードしていない場合 http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

jDK VS JREの参照スレッド JDKとJREの違いは何ですか?

32
TechDog

私はこれがあなたの特定のエラーではないかもしれないことを知っています、しかし私はかつて私の経路の先頭にスペースがあり、Javaは動くでしょうがjavacは動かないでしょう。

それが価値があるもののために、私は賢人助言を提供します:「あなたの道をよく調べなさい」。

6
Sam

ここで解決策を試してください: http://techdem.centerkey.com/2009/05/javahome-command-script.html

ハードコーディングされたパスがないため、JDKまたはJREをアップグレードするときのように、これらは変更に対してはるかに堅牢です。

素早い解決策(ブログを読みたくない場合)は、

C:\>for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
C:\>set PATH=%PATH%;%Java_HOME%

その後、これらの行を起動/ログインスクリプトに追加できます。

5
Jason

大丈夫、これは必ずしも当てはまるわけではありませんが、私たちの多くは過去にこの間違いをしたことがあり、そのうちまだ気付いていない人はほとんどいません。つまり、環境変数のパスを追加するたびに、 '"セミコロン"の直後にスペースバーが表示される可能性があります(通常のように、エディタで入力している間の "ピリオド"の後)。

これにより、パスの先頭にスペースが作成されます(例: "C:\ Program Files\Java\jdk1.6.0\bin"、​​したがって "javac.exe"はシステムによって検出されません)。

4
Malay Desai

私はこれをwindows 7 64上で動作させるためにこれをしなければなりませんでした。

コマンドプロンプト(cmd.exe)を開き、次のように入力します。

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

実行中のすべてのコマンドプロンプトWindowsを再度開いて、環境変数も更新するようにしてください。

3
Ryan Summey

フォルダ "jdk1.7.0_45" "jdk1_7_0_60"を変更し、Windows環境でパスを更新してください。それ以外の場合、パスは隠しファイルを表す先頭のドットを無視するため、フォルダーはPATH文字列に表示されません。

2
NewDev

Path変数のパス間にスペース(空白)を入れないでください。私の問題は私が空白を持っていたことであり、私はWindowsがそれをNULLとして扱い、Javaのための私の道を読まなかったと思います。

0
TRHUMMEL

パスは管理者アカウントに対してのみ設定されます。したがって、まだ行っていない場合は、管理者としてコマンドプロンプトを起動することが重要です。

0
user4433410

これは古い質問ですが、私の解決策はここでの答えではなかったので、他の誰かが試してみた場合に備えて投稿してください。

私の場合は、以前にインストールしたJava JRE(ProgramData/Oracle/Java)では、パス変数のリストの一番上にパス変数がありました。その「Oracle」パスの内容には、Java.exeがありましたが、javac.exeはありませんでした。私はフルパスのJDKパスをパス変数のリストの一番上に、 "Oracle"のパスの前に追加しました、そしてそれはそれからjavac.exeとJavaを拾いました。

0
Neil
for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
set Java_HOME

this 解決策は私に働きました

0

私はこの問題で同じ問題を投稿していました。 Javaは機能しますが、javacはWindowsコマンドのプロンプト(cmd.exe)には含まれません。

私にとっては、環境変数C:\Program Files\Java\jdk1.8.0\binの最後に%PATH%を追加するときにスペースを空けていただけです。
;と次のファイルパスの間のスペースを削除してください。

0
Taiton

私は、Javaが動作するのと全く同じ問題に直面しましたが、javacは、Windows 8のcmdプロンプトでは動作しませんでした。

パス名の末尾にある'>'を削除するのを忘れたため、問題が発生しました。

C:\Program Files\Java\jdk*\bin>

これは次のようになっているはずです。

C:\Program Files\Java\jdk*\bin
0
Kevin