2013-01-12 16 views
73

Java SDKがMacにインストールされているかどうかを確認するにはどうすればよいですか?Java JDKがMacにインストールされているかどうかを確認するにはどうすればよいですか?

これにはコマンドラインはありますか?ターミナルで

+0

あるJavac ......... – MadProgrammer

+0

* *エラー出力は何ですか「というソフトウェアが実行されていません」:javaは、次の方法でインストールされている場合

だからあなたは確認することができますか? –

答えて

114

javac -versionのようなものが

+0

"javac 1.6.0_37"はJDK 6または7と同等ですか? –

+3

'1.6' so jdk 6. –

+3

しかし、Javaがインストールされていないと、Javaをインストールする必要があることを示すダイアログボックスが表示されるので、スクリプトには適していません。 –

16

タイプ:

which javac 

それは、端末内

/usr/bin/javac 
+0

+1のタイミング;)回答のための –

+8

-1:パス内のjavaコマンドの存在がJDKがインストールされていることを証明していません(ただし、JRE) –

+0

Sigh、javac then ... – asgoth

1

ジャストタイプjavacを行いますあなたが表示されるはずです。それがインストールされている場合は、使用情報を取得します。それ以外の場合は、Javaをインストールするかどうかを尋ねるだけです。

32

には、java_homeヘルパーバイナリを利用できます。インストールされたJDKのすべてのバージョン一覧表示するには

:特定のJDKのバージョンのJAVA_HOMEパスを要求するには

$ /usr/libexec/java_home -V 
Matching Java Virtual Machines (2): 
    1.8.0_51, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home 
    1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 

を、あなたが行うことができます:

$ /usr/libexec/java_home -v 1.7 
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 

$ /usr/libexec/java_home -v 1.8 
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home 

あなたは上記のコマンドを利用することができあなたのスクリプトは次のようになります:

REQUESTED_JAVA_VERSION="1.7" 
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then 
    # Do this if you want to export JAVA_HOME 
    export JAVA_HOME="$POSSIBLE_JAVA_HOME" 
    echo "Java SDK is installed" 
else 
    echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION" 
fi 

もしあなたが-ifを実行して複数のdiff javaの他のバージョンも同様です。

XML出力を希望する場合、java_homeにはXMLで出力する-Xオプションもあります。

$ /usr/libexec/java_home --help 
Usage: java_home [options...] 
    Returns the path to a Java home directory from the current user's settings. 

Options: 
    [-v/--version <version>]  Filter Java versions in the "JVMVersion" form 1.X(+ or *). 
    [-a/--arch  <architecture>] Filter JVMs matching architecture (i386, x86_64, etc). 
    [-d/--datamodel <datamodel>]  Filter JVMs capable of -d32 or -d64 
    [-t/--task  <task>]   Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine) 
    [-F/--failfast]     Fail when filters return no JVMs, do not continue with default. 
    [ --exec  <command> ...] Execute the $JAVA_HOME/bin/<command> with the remaining arguments. 
    [-R/--request]     Request installation of a Java Runtime if not installed. 
    [-X/--xml]      Print full JVM list and additional data as XML plist. 
    [-V/--verbose]     Print full JVM list with architectures. 
    [-h/--help]      This usage information. 
+0

これが受け入れられる回答である必要があります –

0

/usr/bin/java_homeツールは、javaがインストールされていない場合は1を返します。

/usr/libexec/java_home &> /dev/null && echo "installed" || echo "not installed" 
関連する問題