問題
最近想學java竖般,安裝了IntelliJ IDEA咒唆,建立了一個hello world項目届垫。
可是說需要我首先配置SDK,那就配吧
可是當我選擇了java安裝目錄時全释,IntelliJ IDEA卻提示錯誤
The selected directory is not a valid home for JDK
咦装处,不對呀,我的目錄寫的沒錯啊浸船,java也是可以運行的啊妄迁,怎么回事呢?
后來經過google發(fā)現(xiàn)李命,原來我選擇的是jre的目錄登淘,而jdk....壓根就沒安裝。-_- #
下載jdk
安裝到計算機
然后再來IntelliJ IDEA配置封字,選擇jdk所在的目錄即可
這樣就好啦
如果你之前還配置過java的環(huán)境變量形帮,記得一并修改過來。
jdk與jre
這當然是我這個java外行人或者說初學者才會犯的錯誤周叮,不過我也學習到了jdk和jre的區(qū)別。
jre : Java Runtime Enviroment 運行環(huán)境
jdk : Java Development Kit 開發(fā)組件
簡單來說就是 jdk包含jre
要想深入了解Java必須對JDK的組成, 本文對JDK6里的目錄做了基本的介紹,主要還是講解
了下JDK里的各種可執(zhí)行程序或工具的用途
Java(TM) 有兩個平臺 JRE 運行平臺界斜,包括Java虛擬機仿耽,運行類庫,java應用程序裝載器各薇。
JRE不是開發(fā)環(huán)境项贺,所以不包括編譯器,調試器峭判,有需要這些請安裝JDK(TM)
//---------------------------開發(fā)文件和目錄------------------------------------------------
jdk1.8.0
___________|____________________
| | |
bin lib jre
| | __________|_____________________
java.exe tools.jar | |
javac.exe dt.jar bin lib
javap.exe _____|____ __________ ________|_______ ________ ________
javah.exe | | | | | | | |
javadoc.exe java.exe client server rt.jar ext security applet fonts
java.dll | | charsets.jar |
awt.dll jvm.dll jvm.dll localedata.jar
%JAVA_HOME% -- JDK的根目錄开缎,包含一些軟件版權,聲明林螃,和自述文件奕删,
同時包含歸檔了的Java平臺源代碼包src.zip
%JAVA_HOME%\bin -- JDK包含的一些開發(fā)工具執(zhí)行文件
%JAVA_HOME%\jre\bin\client
包含 Java HotSpotTM Client Virtual Machine 要用的 DLL 文件
%JAVA_HOME%\jre\bin\server
包含 Java HotSpotTM Server Virtual Machine 要用的 DLL 文件
%JAVA_HOME%\lib -- Java開發(fā)工具要用的一些庫文件,有包含了支持JDK工具的非核心類庫tool.jar疗认,
dt.jar 歸檔的 BeanInfo 文件
用于告訴IDE這樣顯示java組件怎樣讓開發(fā)者在自己的應用程序中用戶化它們
%JAVA_HOME%\jre -- JDK使用的Java運行環(huán)境(JRE)的根目錄完残,這個運行環(huán)境實現(xiàn)了Java平臺
%JAVA_HOME%\jre\bin -- Java平臺所要用的工具和庫的可執(zhí)行文件
這些可執(zhí)行文件和 /jdk1.6.0/bin相同的伏钠。
//Java 啟動器工具充當了應用程序啟動器(覆蓋了1.1版本的JDK推出的舊版本JRE工具)
這個路徑不需要設置 PATH 環(huán)境變量
%JAVA_HOME%\jre\bin\client -- 包含Java Hotspot(Java性能引擎) 客戶虛擬機要用的DLL文件
%JAVA_HOME%\jre\bin\server -- 包含Java Hotspot(Java性能引擎) 服務器虛擬機要用的DLL文件
%JAVA_HOME%\jre\lib -- JRE要用的代碼庫,屬性設置谨设,資源文件熟掂。
例如rt.jar Java 引導類庫(java 核心APIRunTime類)
charsets.jar 字符轉換類庫
%JAVA_HOME%\jre\lib\ext -- 默認的Java平臺擴展安裝環(huán)境
包含localedata.jar 是 ava.text 和 java.util包要用到的地區(qū)數據
%JAVA_HOME%\jre\lib\security -- 包含安全管理文件,有安全規(guī)則(java.policy)
和安全屬性文件(java.security)
%JAVA_HOME%\jre\lib\applet -- Java applets 要的Jar包扎拣,可以放到lib/applet/目錄赴肚,
這樣可以節(jié)省 applet 類裝載器從本地文件系統(tǒng)裝載 大的applets 所需的applet類時間
減少從網上下載具有相同的保護的時間。
%JAVA_HOME%\jre\lib\fonts 包含平臺所需的TrueType字體文件
//不知道大家的版本有沒有這個目錄
-db目錄 純Java開發(fā)的數據可 Derby二蓝,是一個開源的100%Java開發(fā)的關系數據庫
db
_________|__________
| | |
Demo Frameworks lib
-Dmeo 是Java Derby的例子程序
-Frameworks 提供數據庫運行時需要的用到的shell腳本誉券,包括Windows下的bat和Unix下的Ksh
包含 Java DB 的類庫和 Sun Microsystems 的 Apache Derby 數據庫技術的分發(fā)
有關 Java DB 的信息,請參見 http://developers.sun.com/prodtech/javadb/侣夷。
有關 Derby 的文檔横朋,請參見:http://db.apache.org/derby/manuals/index.html
//----------------------------附加的文件和目錄--------------------------------------------
jdk
___________|__________ ___________
| | | |
demo include src.zip sample
___|___ _________ __________
| | | |
applets jfc jpda plugin
%JAVA_HOME%\src.zip -- 歸檔的Java源代碼
%JAVA_HOME%\demo -- Java編程的例子
%JAVA_HOME%\demo\applets -- 網頁Applets的例子
%JAVA_HOME%\demo\jfc -- Java 2D(TM)和JFC(基礎圖形類集合)\Swing 功能的例子
%JAVA_HOME%\demo\jpda -- 用Java平臺Debugging的體系構架,包還有javadt 的 jdb 源代碼,
具體內容可看jpda目錄下的doc\index.html
%JAVA_HOME%\demo\jvmti -- java虛擬機tool interface (工具接口) 實例代碼
%JAVA_HOME%\demo\plugin -- java 插件產品案例
%JAVA_HOME%\demo\nbproject -- JDK的 netbean工程示例
%JAVA_HOME%\demo\management -- 一些這樣查看死鎖線程(FullThreadDump )百拓,
收集垃圾(VerboseGC)內存cpu使用狀況了代碼例子琴锭。詳細可查看目錄下的index.html
%JAVA_HOME%\sample -- 某些 Java API 的編程樣例(帶源代碼)。
//有興趣的可看看上面這些代碼衙传,很有用
%JAVA_HOME%\include -- C 語言頭文件 支持 用Java本地接口和Java虛擬機接口 來本機代碼編程
//-----------------------------------基本工具--------------------------------------------
這些工具是JDK的基礎决帖,用這些工具來編寫應用程序。
javac.exe -- Java語言編譯器
java.exe -- Java應用程序啟動器蓖捶,JDK 1.6版里同時用于開發(fā)和部署地回,
舊的部署啟動器,jre俊鱼,不在提供
javadoc.exe -- Java API 文檔生成器
apt.exe -- java 注釋處理器
appletviewer.exe -- java applet 小程序查看器
jar.exe -- java文件壓縮打包工具
jdb.exe -- Java 調試器.
javah.exe -- C 頭文件和stub生成器刻像,用于寫本地化方法,例如生產JNI樣式的頭文件
javap.exe -- class文件 反編譯工具
extcheck.exe -- 用于檢測jar包中的問題
//---------------------------------安全工具 -------------------------------------------
這些工具用于設置系統(tǒng)的安全規(guī)則和生產可以工作在遠端的安全規(guī)則下的應用程序
keytool.exe -- 管理密鑰庫和證書.
jarsigner.exe -- 生產和校驗JAR簽名
policytool.exe -- 有用戶界面的規(guī)則管理工具
kinit.exe.exe -- 用于獲得和緩存網絡認證協(xié)議Kerberos 票證的授予票證
klist.exe.exe -- 憑據高速緩存和密鑰表中的 Kerberos 顯示條目
ktab.exe.exe-- 密鑰和證書管理工具
//--------------------------------Java國際化工具---------------------------------------
這些工具可以幫助你創(chuàng)建可本地化的應用程序
native2ascii -- 見文本轉化為 Unicode Latin-1并闲。//這個工具很有意思 ,大家可以看看這里
//http://java.sun.com/javase/6/docs/technotes/tools/windows/native2ascii.html
//--------------------------------遠程方法調用工具-------------------------------------
這些工具可以幫助創(chuàng)建可以和web和網絡交互的應用程序
rmic.exe -- 生成遠程對象的stubs and skeletons(存根和框架)
rmid.exe -- Java 遠程方法調用(RMI:Remote Method Invocation) 活化系統(tǒng)守護進程
rmiregistry.exe -- Java 遠程對象注冊表
serialver.exe -- 返回類的 serialVersionUID.
//------------------------------Java IDL and RMI-IIOP 工具-----------------------------
這些工具用于創(chuàng)建使用OMG-Standard IDL 和 CORBA/IIOP 的應用程序
tnameserv.exe -- Provides access to the naming service.
idlj.exe -- 生產映射到OMG IDL接口可以使Java應用程序使用CORBA的.java文件
orbd.exe -- 為客戶可以在CORBA環(huán)境下透明的定位和調用服務器的穩(wěn)定的對象提供支持
servertool.exe -- 為應用程序提供易于使用的接口用于注冊细睡,注銷,啟動帝火,關閉服務器
//-------------------------------Java 部署工具------------------------------------------
pack200.exe -- 使用java gzip壓縮工具將JAR文件轉換為壓縮的pack200文件溜徙,
生產打包文件是高度壓縮的JAR包,可以直接部署犀填,減少下載時間
unpack200.exe -- 解包pack200文件為JARs
//-------------------------------Java 插件工具------------------------------------------
htmlconverter.exe -- Java Plug-in HTML轉換器 htmlconverter -gui 可以啟動圖形界面
//-------------------------------Java web 啟動工具--------------------------------------
javaws.exe -- Java web 啟動命令行工具
//-----------------------Java 故障檢修蠢壹,程序概要分析,監(jiān)視和管理工具--------------------
jvisualvm.exe -- 一個圖形化的Java虛擬機九巡,不說了 大家研究一下就發(fā)現(xiàn)太酷了
// 啊這是想了解JVM的人的神器
//http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html
jconsole.exe -- java監(jiān)視臺和管理控制臺图贸,圖形界面的功能太強大了,
運行一下就知道 ,不想多說求妹,看了就知道
//------------------------------Java web 服務工具----------------------------------
schemagen.exe -- Java構架的XML Schema生成器
wsgen.exe -- 生成 JAX-WS
wsimport.exe -- 生成 JAX-WS
xjc.exe -- 綁定編譯器
//------------------------------監(jiān)視工具-------------------------------------------
監(jiān)視Java虛擬機的性能乏盐,不支持Windows 98 和Windows ME 平臺
jps.exe -- JVM Process Status 進程狀態(tài)工具。列出目標系統(tǒng)的HotSpot JJVM
jstat.exe -- 按照命令行的具體要求記錄和收集一個JVM的性能數據
jstatd.exe -- JVM jstat 的守護進程
//-----------------------------故障檢測和修理工具-----------------------------------
jinfo.exe -- 配置或打印某個Java進程VM flag
jhat.exe -- 堆儲存查看器
jmap.exe -- Java內存圖
jsadebugd.exe -- Java 的 Serviceability Agent Debug的守護進程
jstack.exe -- Java堆棧跟蹤
//----------------------------Java腳本工具-----------------------------------------
jrunscript.exe -- 運行腳本
//工具都在JAVA_HOME\bin目錄下制恍,絕大部分工具都有-help命令行參數來提供幫助