日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 命令行eclipse_在命令行中运行eclipse中创建的java项目

發布時間:2024/9/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 命令行eclipse_在命令行中运行eclipse中创建的java项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于項目要求,需要對eclipse中的項目進行打包,使其可以在客戶機上不裝eclipse的情況下正常運行。

一.環境說明:

eclipse---3.5

jdk-------1.6.0.22

os--------xp,win7

二.解決方案詳情:

1.項目不引用外部jar包,僅僅依賴于jdk相關jar包,則有兩種解決方案

方案一、通過eclipse/myeclipse-->export-->java-->runnable

JAR File,按照提示選擇Main方法,再下一步,最終生成jar文件;在cmd命令行下執行:java -jar

XXX.jar即可。

方案二、還是通過eclipse/myeclipse工具導出,但是不是導出jar文件,而是導出包結構及class文件:export-->File

System-->在這一步選擇要導出的類以及項目的配置文件還有lib目錄(也就是項目需要的jar包)(這是關鍵的一步,導出類時因為eclipse/myeclipse默認編譯后的class文件在bin/包路徑/class文件,這里導出時不需要bin這個文件夾,把包路徑和包下的class文件一起導出。最后還應注意,比如我們的項目包都是在com.project.xx包下,而程序入口的main文件在com.project.main包下,則cmd中執行java命令時應該進入到com包所在的目錄下,比如在classes目錄下則cd

classes,執行命令如下:java com.project.main.Main

2.項目引用第三方jar包,并且需要在啟動時讀取配置文件

還是通過eclipse/myeclipse工具導出,但是不是導出jar文件,而是導出包結構及class文件:export-->File

System-->在這一步選擇要導出的類以及項目的配置文件還有lib目錄(也就是項目需要的jar包)(這是關鍵的一

步,導出類時因為eclipse/myeclipse默認編譯后的class文件在bin/包路徑/class文件,這里導出時不需要bin這個文件夾,把包路徑和包下的class文件一起導出,并保證和配置文件目錄即lib目錄同級,不這么做的話在cmd命令下執行java

類名命令時會java.lang.NoClassDefFoundError錯誤,即使代碼沒有任何問題的情況下也會報該異常)。最后還應注意,比如我們的項目包都是以com.project.xxx報下,而程序入口的main文件在com.project.main包下,則cmd中執行java命令時應該進入到com包所在的目錄下,比如在classes目錄下則cd

classes,執行命令如下:

java -Djava.ext.dirs=./lib com.project.main.Main

其中-D參數表示加載項目所需要的jar包即lib下所有*.jar

注意:加入配置文件在項目根目錄/conf/目錄下,那么就必須把conf文件夾

放在和com包同一個目錄下,并在代碼中以conf/XXX來讀取配置文件即可。

3.補充說明

這里說明下為什么在項目有配置文件的時候沒什么沒有采用打jar包形式來導出項目。因為如果采用打jar包的形式,則在jar在項目的時候相當于是負責配置加載的類需要讀取同一個jar包下的配置文件(讀取資源文件同理),這對于項目完全可以修改的情況下我們可以修改讀取配置文件的方式為:

InputStream is=this.gtClass().getResourceAsStream("/conf/res.txt");

來讀取配置問價或者資源文件;但是本分項目早已將加載資源文件的代碼單獨打為jar包,那么我們不能去修改原有代碼,那么“2”中的方法就比較有效了!

三、擴展知識點

1.可運行的jar文件和普通jar文件的區別在jar包中META-INFO/MANIFEST.MF文件:其中可運行jar中指定了main方法所在類的位置,以及運行時所依賴的jar包

Rsrc-Class-Path: ./ commons-lang.jar

Class-Path: .

Rsrc-Main-Class: org.test.Main

Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

2.對于在某個包下的Main Class文件,在命令行下執行該類需要在根目錄下執行

java com.project.main.Main

內容來自1jquery

命令,并且必須帶包名,否則會報NoClassDefFoundError異常

3.java命令-D用來設置系統變量值;java.ext.dirs表示的是告訴虛擬機加載該路徑下所有的jar文件;ext.dirs指定的jar文件由extention classloader負責加載。

總結

以上是生活随笔為你收集整理的java 命令行eclipse_在命令行中运行eclipse中创建的java项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。