かじきの魚拓

WEB系エンジニアのφ(`д´)メモメモ...

全体表示

[ リスト ]

Javaの環境変数の設定

Javaの環境変数の設定をWindows10でしてみました。
ちなみにWindows10の場合、下記の二通りの方法で環境変数の設定画面までたどり着くことができるようです。
設定画面から、WindowsXPや7のときを思い出しながら地道に探しました

(1)WEBとWindowsを検索の窓で「システム環境変数」で検索してみる。システム環境変数の操作を押下。※環境変数で検索し、出てきた「環境変数の操作」を押下しても何も動作しないので注意(Windowsのバグ?)
(2)Windowsアイコン→設定→システム→バージョン情報→システム情報(最下部にあります)→システムの詳細設定→最下部の環境変数を押下

設定から行くと深いので検索の窓から行ったほうが早いですね。

さて今回、環境がうまくいかなかったのは、JREとJDK別々にインストールされており、別々に管理されているからではないかと思われます。下記、Windows10の環境変数(Java)のまとめです。

■気づいたこと
・JDKをインストールすると、JREとJDKがC:\Program Files\Javaに入る(おそらくデフォルト)
・JREはJavaの実行環境
・JDKはJavaの実行環境と開発環境(javacそのほか開発ツールとjavaの実行環境が入っている)
・パスが通るのは、JRE。
・パスは「Path=C:\Program Files\Java\jdk(もしくはjre)1.8.0_91\bin」のように保存されるわけではなく、「C:\ProgramData\Oracle\Java\javapath」にパスが貼られている
・javapath内はjava.exeへのショートカットが入っているが、単純にここにjavac.exeのショートカットを置くだけではダメ(どういう仕組みなのかは不明)
・システム環境変数 > ユーザ環境変数なので、ユーザ環境変数を設定してもシステム環境変数が優先されてしまう

■解決策(1)
・管理権限でシステム環境変数の「C:\ProgramData\Oracle\Java\javapath」を削除。
・ユーザ環境変数にPathを作り、JDKのbinフォルダの場所を追加する
・バージョンアップや新しいバージョンのJavaをインストールする度にC:\ProgramData\Oracle\Java\javapathを削除する必要あり(もしくはインストールする際に、JREを外す)

■解決策(2)
・管理者権限でシステムの環境変数を変更。Pathの最初のほうに、JDKのbinフォルダの場所を追加し、最後のほうに「C:\ProgramData\Oracle\Java\javapath」を入れておく。最初のほうに書かれていることを優先するので、
「C:\ProgramData\Oracle\Java\javapath」に書かれたバージョンのJavaは参照されない。

■妥協案
・ユーザ環境変数でJDKを指し、システム環境変数は「C:\ProgramData\Oracle\Java\javapath」を入れたままにする。JDKとJavaの実行環境のバージョンが異なっても気にしない。

■そのほか
コマンドプロンプトでPathと打つと、今コマンドプロンプトが読み込んでいるPathが分かります!

開発としては、同じバージョンでやるのが一番ですが、セキュリティ的には実行環境は最新にしておかないと怖いものがあるからこうなっているのだと考えました。Javaはよく脆弱性が見つかってバージョンアップしていますし、自分がコンパイルしたソース以外もフリーソフトでJavaで作られたソフトがゴロゴロしていて、実行環境であるjava.exeで実行されちゃうことが予測されます。「実行環境が開発に使っているバージョンをずっと指していたら、PCに脆弱性を作ることになる!」と考えたのではないでしょうか。
JDKもJREのように自動更新されればよいですが、性質上開発を行っているJDKは自動更新はされたら困るケースが多いと思うのでセキュリティを考えた苦肉の策かもしれません。

最後に環境変数を設定したら、IntelliJ IDEAは動くようになりました。
右クリックメニューからrunで即座に実行してくれるのがとても便利です。
まだeclipseは触っていませんが、今後はIntelliJ IDEAでやろうかな。

イメージ 1

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事