標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (120) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (131) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)
顯示具有 java 標籤的文章。 顯示所有文章
顯示具有 java 標籤的文章。 顯示所有文章

2024年7月30日 星期二

CentOS 6.2 安裝 Java8

 https://blog.51cto.com/sugarlovecxq/1551000

 

 

环境:CentOS release 6.2 (Final) 64bit

安装:

1.在官网下载Linux版的JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.直接安装即可

[root@localhost opt]# rpm -ivhjdk-8u20-linux-x64.rpm

Centos 6.2上JDK 8的安装与卸载_java

本次下载的是rpm格式的,如果下载的是jdk-8u20-linux-x64.tar.gz,也就是后缀名是tar.gz格式的,放在/usr/java下直接解压,然后设置下环境变量就可以。

3.设置环境变量

  a.编辑vi /etc/profile文件,添加如下几句:

     export JAVA_HOME=/usr/java/jdk1.8.0_20

     export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

     export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

     export DISPLAY=locahost:0

     以上这样设置环境变量会对所有的用户的shell都生效的。

b.也可以直接在命令行输入以上几句,但是这样设置环境变量只对当前的shell             生效,如果再打开一个shell,就不可以使用刚刚设置的环境变量

c.还有一种方法就是编辑.bashrc文件设置环境变量,这样设置只对当前设置的       某个用户有效。

   设置好之后,使其生效

   [root@localhost ~]# source /etc/profile

   [root@localhost ~]# echo $CLASSPATH

   [root@localhost ~]# echo $JAVA_HOME

   [root@localhost ~]# echo $PATH

4.验证JDK是否可以使用

   [root@localhost ~]# vi java_test.java

class java_test
{
   public static void main(String[] args)
    {
        System.out.println("This is java program");
    }
}

编辑之后保存

[root@localhost ~]# javacjava_test.java

会发现在当前目录下产生java_test.class文件,

[root@localhost ~]# java java_test

Centos 6.2上JDK 8的安装与卸载_jdk安装_02

卸载:

1.查看

[root@localhost ~]# rpm -qa|grep jdk

jdk1.8.0_20-1.8.0_20-fcs.x86_64

如果使用[root@localhost ~]# java –version可以看到有安装java,可以使用以下的方法进行查看

rpm -qa|grep gcj、rpm -qa|grep java 、rpm -qa|grep jre查看

2.卸载

使用rpm –e 进行卸载即可

[root@localhost ~]# rpm -ejdk1.8.0_20-1.8.0_20-fcs.x86_64

以上就是java的安装与卸载大致过程。

2013年12月4日 星期三

Java 有 3rd party class 時,應該如何放

http://tw.myblog.yahoo.com/l314kimo/article?mid=338&prev=346&next=337&l=f&fid=10

今天總算釐清了一些困擾我很久的東西,所以做個簡單的筆記。

一、安裝單一版本的jdk時,通常會有:

4個java.exe:

   1.WINDOWS\system32\java.exe
   2.[JRE_location]\bin\java.exe
   3.[JDK_location]\bin\java.exe
   4.[JDK_location]\jre\bin\java.exe

2個JRE:
   1.Public JRE (指[JRE_lcation])
   2.Private JRE (指[JDK_location]\jre)

前兩個java.exe使用的是Public JRE,後兩個java.exe使用的是Private JRE。




二、classpath無需設定rt.jar的路徑,因為jdk會預設載入。(參考六)

可以在console mode 輸入java -verbose得之。
(verbose 可以顯示JVM會依序load哪些Class)
不知道是幾版之後才如此。總之,我試了又試,有沒有設rt.jar路徑真的無差別,
很好奇為什麼大家都說要在classpath設定rt.jar,而我在google上卻找不到答案。
也有人提倡最好少設classpath。




三、path用來設定指令的前置位址,如下:

(可以在console mode 輸入set path 或 path以顯示)
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\Program Files\Microsoft SQL Server\90\Tools\binn\;
C:\Program Files\Java\jdk1.6.0\bin;
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\Bin;

所以當我們在console mode 輸入java XXX 時,如果current目錄沒有java這指令時,
便會依序嘗試path下的路徑。




四、jdk目錄下之所以安置了一個jre,原因在於jdk下的工具大都是用java開發的。

如:java.exe , javac.exe jar.exe..等,(這些工具都放在jdk\lib\tools.jar中)
外表雖然是用RPC包裝成.exe檔,但其實它們都需要呼叫JRE的library。
所以JDK下就放了一個專供JDK使用的JRE,
但也可以透過path的設定讓[JDK_location]\jre被一般使用者使用。




五、在console mode使用java 這指令時,它使用的是哪個jre呢?

1.先找自己的目錄下是否有jre.

2.父目錄底下的jre目錄.(jdk\bin下的工具便是如此找到jdk\jre)

3.查詢Windows Registry
(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)

所以這時path的順序設定將決定採用的是哪一個jre。

case1:
若path的順序是\WINDOWS\system32 在 \[JDK_location]\bin 之前。
java指令便是執行\WINDOWS\system32\java.exe
由於windows下無jre目錄,所以會參考Window Registry下的jre。
(即前述的Public JRE)

case2:
若path 的順序是\[JDK_location]\bin 在\windows\system32 之前。
那麼java指令便是執行C:\[JDK_location]\bin\java.exe
由於jdk下有一個jre目錄,所以java會參考jdk\jre。
(即前述的Private JRE)

最常發生的問題是當path的順序如case1,
java指令找到的jre與javac找到的jre是不同的。
產生的問題待第六點解釋。




六、java找尋class的順序

根據JDK 文件說明, java以下面3種順序找尋class的順序
1.Bootstrap classes

2.Extension classes

3.Users classes



Bootstrap classes指的是java在啟動時載入的class,
這些class主要是rt.jar 和 jre/lib 目錄下的一些class。
(所以rt.jar可以不須加入classpath)

下面列出系統中預設的Bootstrap classes:
jre\lib\rt.jar; jre\lib\i18n.jar;
jre\lib\sunrsasign.jar; jre\lib\jsse.jar;
jre\lib\jce.jar; jre\lib\charsets.jar;
jre\classes


Extension classes 指的是jre/lib/ext 目錄下的jar或zip檔。
third-party 的 library通常會放在這目錄下,如java3d, jogl..等。
當classloader 需要resolve class時,jre會自動來此目錄下找。
如果不同名字的jar,卻包含了相同的class,那麼哪一個class被載入是不一定的。

第五點最後提到的問題,常常跟Extension classes扯上關係。
當我們使用third-party的library時,如果只將jar檔放在Private JRE/lib/ext中,
javac指令因為使用Private JRE,所以能夠找到third-party library,得以順利compile。
但java指令使用的是Public JRE,Public JRE找不到 third-party library,
以致無法順利執行,原因是無法import package。

解決的方法有:
1.將third-party library jar檔 在 private JRE/public JRE 各放一份。
2.設定path時,使用第五點的case2。使java及javac指都優先使用Private JRE。

Eclipse可以很方便使用third -party library,
Project->Properties->Java Build Path->Libraries->Add External JARs
(陶百學長教我的)



User classes便是指我們在classpath設定路徑下的class。
如:若總是使用c:\java\的class,或是需要使用c:\lib\test.jar裡的library,
便可以set classpath =.;c:\java\;c:\lib\test.jar
(.jar檔須將完整路徑名加入classpath, jre才會進入該jar檔裡找尋target class)

user classes尋找的優先序:
(1)若無設定classpath, jre預設找(.)目前目錄是否存在target class.
(2)若有設定classpath, jre只找classpath設定的路徑是否存在target class.
(3)在console mode下使用-cp 或 -classpath, 則jre只找參數後的路徑是否存在target class.
(4)在console mode使用-jar來指定jar檔時, jre只找尋jar中是否存在target class.

2013年6月16日 星期日

利用Eclipse製作可執行jar run

http://blog.yslifes.com/archives/680


利用Eclipse製作可執行jar run

分類: eclipse, 教學 時間:2010/6/23 瀏覽:16,431 瀏覽數 — 更多回應
寫好java application之後,要執行時可以直接使用java.exe來執行classes,另外還有幾種方式也可以執行,像是Web Start run或是jar run等等,只需要使用jar.exe來打包所有classes就可以了,而在Eclipse上要打包jar檔更是方便,只需要利用匯出精靈幾個步驟就可 以完成了。jar其實也是一種zip壓縮檔。
利用範例[Java]SiteMap Creater-簡單的SiteMap建立程式來匯出產生jar run。
打開Eclipse後,在要執行jar檔的專案根目路上按右鍵選則Export
SiteMapToJar1.png
選擇要匯出的java檔,要能夠執行jar run需要把含有main的java檔一起選取
設定要匯出的路徑及檔案名稱
SiteMapToJar2.png


可以選擇要使用的設定檔,一起打包,像是log4j的設定檔
SiteMapToJar3.png
再來可以設定是否匯出complier時是否告知警告及complier錯誤等
SiteMapToJar4.png
再來要設定Mainifest,可以利用精靈來做設定,不過使用記事本編輯後再選取檔案,也是個不錯的方式
Manifest-Version: 1.0
Sealed: true
Main-Class: yku.xml.SiteMapCreator2
Class-Path: lib/mysql-connector-java-5.0.4-bin.jar lib/log4j-1.2.15.jar lib/commons-logging.jar
Main-Class告知此jar從那個class開始執行(含main的程式)
Class-Path外部library的位置,中間利用空白檔分隔
最後記得給於一行空白當結束



如果不是自行製作Manifest.mf,則在上圖選擇 "Generate the manifest file"
而且最下面的Main class要選擇一個自己的class

 
完成後可以看到SiteMapCreator.jar已完成SiteMapToJar6.png
要執行此jar檔,還需要原本開發時所需要的library,如commons-logging.jar、log4j-1.2.15.jar及mysql-connector-java-5.0.4-bin.jar
SiteMapToJar7.png
把這些檔案放到剛才Mainifest.mf所指定的目錄下,如lib目錄
SiteMapToJar8.png
再來把一些其它的設定檔及需求檔案(是否打包進入jar裡,要看程式的設計方式)
SiteMapToJar9.png
再來只需要打開common視窗,利用以下語法就可以了
java -jar SiteMapCreator.jar
jar -jar jar檔案 參數
SiteMapToJar10.png