javaでコンパイルは出来ているのですが実行ができません。
- 評価
- クリップ 1
- VIEW 6,292
前提・実現したいこと
javaについてです。
コンパイルは出来たのですが、実行ができません。
使っているパソコンはWindows7、64ビットオペレーティングシステムです。
発生している問題・エラーメッセージ
C:\ProgramData\Oracle\Java\javapath\java.exeが見つかりません。
該当のソースコード
C:\Users\chika>cd C:\Users\chika\desktop
C:\Users\chika\Desktop>javac Test.java
C:\Users\chika\Desktop>java Test
ファイル C:\ProgramData\Oracle\Java\javapath\java.exe が見つかりません。
試したこと
1 Pathが通っているか確認
C:\Users\chika\Desktop>path
PATH=C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft
Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Window
s Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System
32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stac
k\sys\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\x64\;C:\Progra
m Files (x86)\Intel\Services\IPT\;C:\Program Files (x86)\Windows Live\Shared;c:\
Program Files (x86)\Common Files\Roxio Shared\DLLShared\;c:\Program Files (x86)\
Common Files\Roxio Shared\OEM\DLLShared\;c:\Program Files (x86)\Common Files\Rox
io Shared\OEM\DLLShared\;c:\Program Files (x86)\Common Files\Roxio Shared\OEM\12
.0\DLLShared\;c:\Program Files (x86)\Roxio 2010\OEM\AudioCore\;C:\Program Files\
Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program F
iles (x86)\Symantec\VIP Access Client\;C:\Program Files (x86)\Skype\Phone\;C:\Pr
ogram Files (x86)\Common Files\Adobe\AGL;C:\Program Files\Java\jdk1.8.0_45\bin;C
:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessComm
on\
このようになり、Program Files\Java\jdk1.8.0_45\binの文字列が見られたので、Pathが通ってるっぽいと推測し2を試しました。
2 Java.exeの確認
binファイルの中にjavaという名前で拡張子が.exeのファイルがありました。
補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
Pathを通すときに以下のようにいろいろと試していました。
https://teratail.com/questions/35025
このことがまだ影響しているのでしょうか?
【追記】
・画像を添付しました。
Internet Exproer でC:\ProgramData\Oracle\Java\javapath を開き、javaのプラパティと、他のタブをクリックしたときに出てきたエラーメッセージのスクショです。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
既に回答がついてしまいましたが...
今のWindowsのJREはインストール時に
C:\ProgramData\Oracle\Java\javapath
の下にjava
,javaw
,javaws
(それぞれ.exe
)のシンボリックリンクを作るようになっているみたいです。
JREをアンインストールするなどしてリンク先が失われた場合、それが残ってしまうんだと思います。
シンボリックリンクは残っているので、PATH上にjava.exe
は見つかるものの、リンク切れになっていて、「java.exeが見つかりません。」となっていると推測します。
javac.exe
はJDKにしか入っていないため、JDKの方のパスが有効になり、上手く実行できているのです。
...
情報の追加欄で少しやりとりさせていただきましたが、...\javapath
の下のシンボリックリンクがおかしいですね。
tkmtmktさんが書かれているように、リンク先の実体が存在しないようです。JREをアンインストールしたのでしょうか?
JREを再インストールすればそこが解消するかもしれませんが、解消しなければ何か他の(もしかするとWindowsの)問題がある可能性があります。
PATHからC:\ProgramData\Oracle\Java\javapath
を取り除いて、JDKのjava.exe
だけを使うようにすれば解消すると思いますが、JREをインストールするたびに同じことが発生するかも知れません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
現象は以下であると推測されます。
- PATHの先頭にある
C:\ProgramData\Oracle\Java\javapath;
内のJava.exeが実行されている C:\ProgramData\Oracle\Java\javapath;
内のJava.exeはシンボリックリンクだが、リンク先の実体が存在しない
PATHに C:\Program Files\Java\jdk1.8.0_45\bin
が含まれているので、PATHの先頭にある C:\ProgramData\Oracle\Java\javapath;
を削除してみてはどうでしょうか?
あるいは、最新のjdk1.8.0_91をインストールすればシンボリックリンクを修復してくれるかもしれませんので、試してみてはどうでしょうか
【参考】
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
環境変数 PATH を見た限りでは、C:\ProgramData\Oracle\Java\javapath へは通していますが、実はこのパスに存在するjava.exe , javaw.exe , javaws.exe はそれぞれ C:\Program Files\Java\インストールしているJREのバージョン(例えばjre1.8.0_65)\bin\ 以下に存在する同名のexeファイルへのショートカット(SYMLINK)です。
このため、javacを実行しているときのPATHは、おそらくインストール&PATHを通している方のJavaコンパイラを使えているのですが、javaの実行に関しては先に見つかった、先のショートカットのexeを探しに行って、見つからないとなっているのではないかと思います。
対策としては、既存の環境変数 PATH に書かれているOracle\java\javapath よりも手前に、ご自分で導入したJavaのSDKのパスが先に来ればよいので、次のような環境変数設定が一番良いかと思料します。
環境変数 JAVA_HOME : インストール対象のJDKのパス ( 例:D:\Pleiades\java\8 )
環境変数 PATH : %JAVA_HOME%\bin;%PATH%
これを適用することで、java実行時はJAVA_HOME\binで指定したJavaランタイムで実行できるでしょう。
解決に結びつけば幸いです。間違っていたらご容赦ください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
※誤ってコメントを投稿してしまいました。
コントロールパネル>プログラムのアンインストール
であっています。
"プログラムと機能"は、コントロールパネルの表示を変えていないと表示されないものでした。
手動で消してしまったものは、念のためアンインストールしておいたほうが良いかも知れません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
既にいろいろ回答があるようですが、
別な解決方法を1つ、
それは、OSをクリーンインストールして最初からやり直す、という手段です。
多分、一番確実かなと思います。(一番時間も掛かると思いますが・・・)
日頃使っているようなPCですと、
いろいろバックアップを取る必要があるかもしれませんが、
最終的な手段として、頭の片隅にでも入れておいてもらえるといいと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.36%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
argius
2016/05/23 21:24
C:\ProgramData\Oracle\Java\javapath をエクスプローラーで開くと、何か入っていますか?
learning_ci
2016/05/23 21:26
ご回答ありがとうございます。
java
javaw
javaws
の3つが入っていました!
argius
2016/05/23 21:29
java.exeを右クリックしてプロパティーを開き、リンク先というところの記述を見てください。"C:\Program Files\Java\jre1.8.0_xx\bin"のような文字列があると思います。そのフォルダーは実際に存在しますか?
learning_ci
2016/05/23 21:33
すみません、java.exe > プロパティを開いたのですが、「リンク先」ってどこにありますか?
上のタブは「全般」「互換性」「デジタル署名」「セキュリティ」「詳細」「以前のバージョン」の6つになっています。6つ全部を見てみましたが「リンク先」が見つかりませんでした。
argius
2016/05/23 21:37
「ショートカット」タブの真ん中よりちょっと上あたりです。「ショートカット」タブが無いとなると、何か異常な状態になっているのかも知れません。一旦この情報で回答書いてみますね。
learning_ci
2016/05/23 21:39
上記は、コンピューター>ローカルディスク・・・JavaからJava.exeを右クリックした場合です。
先ほど書いてくださったようにエクスプローラーでC:\ProgramData\Oracle\Java\javapathを開き、そこにあったJavaを右クリック>プラパティをクリック すると、やはり「リンク先」は見つかりませんでした。
ただし、「共有」タブにて「javapath 共有されていません」や「ネットワークパス(N):共有されていません」などの表示を見つけました。(関係なかったらごめんなさい)
argius
2016/05/23 21:43
やはり何か変ですね。ついでなので、もう1つ確認お願いします。"C:\Program Files\Java"の下に何かフォルダーはありますか?
swordone
2016/05/23 23:13
プロパティのスクリーンショットを載せていただけませんか?
learning_ci
2016/05/24 14:56
>"C:\Program Files\Java"の下に何かフォルダーはありますか?
あります。jdk1.8.0_45がその下にあり、さらにその下にはbinなどたくさんのファイル・フォルダがあります。
learning_ci
2016/05/24 15:12 編集
>プロパティのスクリーンショットを載せていただけませんか?
質問編集画面で<画像のマーク>からスクリーンショットを載せたつもりなのですが、私の方では画像が見えていません。画像見えてますか?
また、「リンク先」のところをスクショしようとタブを移動しようとすると、昨日と違って次のようなエラーメッセージが出ました(結果として、「リンク先」の表示までたどりつけませんでした)。
ショートカット エラー
受け側に指定されたパス名’C:\Program Files\Java\jre1.8.0_91\bin\java.exe’は無効です。パスとファイル名が正しいか確認してください。
swordone
2016/05/24 15:26
見えていません。文字数オーバーですかね?
learning_ci
2016/05/24 15:54
以下のことをいろいろ試しました。
・画像サイズを小さくする
・GIFやJPEGなどにし投稿してみる
しかしどれをやっても画像が出てきません。ごめんなさい。
ちなみにこの返信欄には画像を添付できるようなボタンがないようなので、質問を編集する画面にて行いました。