わかりました、私はMacとOSXに少し慣れていますが、私が仕事をしている会社でのJavaプログラムでのトラブルシューティングができるように1つを選びました。 OSXおよびWindowsマシン。実行中の問題は、OracleのWebサイトからJava 7をインストールすると、設定メニューが更新され、ダブルクリックすると.jarファイルが正しく実行されるように見えることです。 、ただし、ターミナルウィンドウのバージョンはまだ1.6.0_43であり、ターミナルから同じ.jarファイルを実行すると、古いバージョンが原因でランタイムエラーが発生します。
/ Library/Java/JavaVirtualMachines /に移動すると、空のフォルダーが表示されます。私が他の記事で見たことから、これはJava 1.7.0のバージョンフォルダーのあるべき場所です。何が起こっているのかわかりますか?ターミナルで正しいバージョンを使用するにはどうすればよいですか? Java?
編集:@DWilchesは彼の元の答えについてコメントします:(1)
total 64
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Mar 17 21:38 A
lrwxr-xr-x 1 root wheel 1 Mar 17 21:38 Current -> A
lrwxr-xr-x 1 root wheel 59 Mar 17 21:38 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
(2)
ls -ld /usr/bin/Java
lrwxr-xr-x 1 root wheel 74 Mar 17 21:38 /usr/bin/Java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java
編集:新しい回答の間違いで申し訳ありませんが、長い間元の投稿の編集をブロックするサイトに慣れすぎました...
Mac OSでは、/usr/bin/Java
とそのフレンドは、実際のJDKコマンドに委任するスタブです。これらのスタブはJava_HOME
環境変数の設定を尊重しますが、これを機能させるには[〜#〜] jdk [〜#〜](from http://www.Oracle.com/technetwork/Java/javase/downloads/index.html )[〜#〜] jre [〜#〜]とは対照的に=(from http://Java.com )。
JDKは/Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk
(NNの値に関係なく)にインストールされるため、Java_HOME
環境変数を/Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home
に設定して、/usr/bin/Java
で1.7を使用します。代わりにJava_HOME
を/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
にポイントするだけで、1.6に戻すことができます。 /usr/libexec/Java_home
ツールを使用して、正しい値を自動的に見つけることができます。たとえば、/usr/bin/Java
を使用してJava 7
export Java_HOME=`/usr/libexec/Java_home -v '1.7*'`
そして、それを使用するためにJava 6あなたができる
export Java_HOME=`/usr/libexec/Java_home -v '1.6*'`
同じことがJava 8(-v '1.8*'
を使用)に適用されます。これにより、関連するメジャーバージョンの最新のインストール済みJDKが選択されます。NN
更新をインストールするときに手動で。
1.7または1.8を実行したい場合[〜#〜] jre [〜#〜]は、コマンドラインから/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java
にあります。これは固定パスであり、一度にインストールできる「パブリック」JREは1つだけです。
$ /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java -version
Java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
.bashrc
でシェルエイリアスを使用できます
alias Java_jre='/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java'
問題は、OracleのJREインストールが/ usr/bin/Java実行可能ファイルを変更しないことです。これを使用する場合は、Java/Libraryの下のパスを使用する必要があります(これが何かを見つける必要があるため、JDKがインストールされているため、異なる場合があります))
OracleのJRE インストールドキュメント
OracleからJREをインストールしても、Java -version symlinksが更新されたり、パスにJavaが追加されます。これを行うには、JDKをインストールする必要があります。 。
Oracle JDKは/usr/bin/Java
を変更して、Java 7実行可能ファイルを指します。開発を行う場合は、JRE以外のものが含まれているため、これを使用する必要があります。
Oracle インストールFAQ は言う
Q:JREまたはJDKをインストールする必要がありますか?
A:Javaアプリケーションを実行する場合は、Java Runtime Environment(JRE)をインストールしてください。JREはOracle Javaとも呼ばれます。 JREをインストールすると、JARファイル、JNLPファイルをダブルクリックして、ブラウザーを介してJavaアプレットおよびアプリケーションを起動できます。32ビットモードのFirefoxなどの32ビットブラウザー、およびChromeは、JREではサポートされていません。
Javaアプリケーションを作成する場合は、Java Development Kit(JDK)をインストールしてください。
まず、コンソールを終了して再度開き、PATH変数の変更を取得できるようにしましたか?
すでにこれを行っている場合は、Javaのデフォルトバージョンがどれであるかを確認してください。
dwilches@ ~$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
dwilches@ Versions$ ls -l
lrwxr-xr-x 1 root wheel 59 Mar 19 10:07 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 1 Mar 19 10:08 Current -> A
drwxr-xr-x 8 root wheel 272 Mar 25 10:03 A
これで、「現在の」バージョンが「A」であることがわかります(これは私のJava7です)。 Java 1.6に変更したい場合は、次のように記述できます。
dwilches@ Versions$ Sudo unlink Current
dwilches@ Versions$ Sudo ln -s 1.6 Current
その後:
dwilches@ Versions$ Java -version
Java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
したがって、これを使用して、「Current」が目的のJavaの場所を指すようにすることができます。