2014-12-03 75 views
0


當我執行的java.exe -version
兩個JDK和JRE說:SE運行時環境
有沒有其他辦法區分JDK或JRE如何分辨安裝的Java的diffarences - JDK或JRE

C:\Program Files\Java\1.6.0_45\bin>java.exe -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 
+3

'javac' ......... – 2014-12-03 23:04:23

回答

1

夠簡單...嘗試和:

javac.exec -version 

如果你得到一個消息,告訴版本,你有JDK。如果你有一條消息告訴你該命令沒有找到,你有JRE。

1

如果你看看安裝了jdk/jre的文件夾結構,你會發現在jdk/bin文件夾中有很多的二進制文件,比如java,javac,javap等等.JRE包括java但不是javac,javap等。我假設這是linux,並且您下載了壓縮存檔並提取了它。

但是,這不是唯一的區別,JDK是開發工具包,其中還包括JRE。如果你對運行java程序感興趣,那麼JRE就足夠了,但是如果有開發包括編譯,那麼JDK是必需的。還請參閱:What is the difference between JDK and JRE?

文件夾結構JDK和JRE(例如)之間的差異:

對於JRE:

$ ll jre/bin/ 
total 452K 
lrwxrwxrwx. 1 ec2-user ec2-user 8 Nov 18 18:27 ControlPanel -> jcontrol 
drwxr-xr-x. 5 ec2-user ec2-user 4.0K Sep 17 20:42 .. 
drwxr-xr-x. 2 ec2-user ec2-user 4.0K Sep 17 20:42 . 
-rwxr-xr-x. 1 ec2-user ec2-user 7.6K Sep 17 20:42 java 
-rwxr-xr-x. 1 ec2-user ec2-user 130K Sep 17 20:42 javaws 
-rwxr-xr-x. 1 ec2-user ec2-user 6.2K Sep 17 20:42 jcontrol 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jjs 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 keytool 
-rwxr-xr-x. 1 ec2-user ec2-user 8.0K Sep 17 20:42 orbd 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 pack200 
-rwxr-xr-x. 1 ec2-user ec2-user 7.9K Sep 17 20:42 policytool 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 rmid 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 rmiregistry 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 servertool 
-rwxr-xr-x. 1 ec2-user ec2-user 8.0K Sep 17 20:42 tnameserv 
-rwxr-xr-x. 1 ec2-user ec2-user 224K Sep 17 20:42 unpack200 

對於JDK:

$ ll jdk/bin/ 

total 780K 
lrwxrwxrwx. 1 ec2-user ec2-user 8 Nov 18 18:27 ControlPanel -> jcontrol 
drwxr-xr-x. 8 ec2-user ec2-user 4.0K Sep 17 20:44 .. 
drwxr-xr-x. 2 ec2-user ec2-user 4.0K Sep 17 20:42 . 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 appletviewer 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 extcheck 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 idlj 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jar 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jarsigner 
-rwxr-xr-x. 1 ec2-user ec2-user 7.6K Sep 17 20:42 java 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 javac 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 javadoc 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 javah 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 javap 
-rwxr-xr-x. 1 ec2-user ec2-user 1.8K Sep 17 20:42 java-rmi.cgi 
-rwxr-xr-x. 1 ec2-user ec2-user 130K Sep 17 20:42 javaws 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jcmd 
-rwxr-xr-x. 1 ec2-user ec2-user 7.9K Sep 17 20:42 jconsole 
-rwxr-xr-x. 1 ec2-user ec2-user 6.2K Sep 17 20:42 jcontrol 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jdb 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jdeps 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jhat 
-rwxr-xr-x. 1 ec2-user ec2-user 8.0K Sep 17 20:42 jinfo 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jjs 
-rwxr-xr-x. 1 ec2-user ec2-user 8.0K Sep 17 20:42 jmap 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jps 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jrunscript 
-rwxr-xr-x. 1 ec2-user ec2-user 7.8K Sep 17 20:42 jsadebugd 
-rwxr-xr-x. 1 ec2-user ec2-user 8.0K Sep 17 20:42 jstack 

所以,如果你輸入javac而它的命令不能被識別,那麼這意味着JDK/bin不在PATH上。就那麼簡單。這並不意味着JDK未安裝在該主機上 - 它可能是 - 它只是JRE/bin在PATH中,而JDK/bin則不是。

1

當我在路徑

的javac

我得到執行我的箱子下面沒有JDK;

The term 'javac' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and 
try again. 
At line:1 char:6 
+ javac <<<< 
    + CategoryInfo   : ObjectNotFound: (javac:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

因爲我有我的路徑中運行時,當我

Java的版本

我得到執行以下操作;

java version "1.8.0_20" 
Java(TM) SE Runtime Environment (build 1.8.0_20-b26) 
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode) 

在我的Mac具有JDK的道路上,當我做的javac

$ javac 
Usage: javac <options> <source files> 
where possible options include: 
    -g       Generate all debugging info 
    -g:none     Generate no debugging info 
    -g:{lines,vars,source}  Generate only some debugging info 
    -nowarn     Generate no warnings 
    -verbose     Output messages about what the compiler is doing 
... 

總之我跑javac,看看我有JDK激活。