java命令行編譯jar
『壹』 windows下用命令行編譯並運行java工程,怎樣編譯引用的多個jar包和配置文件.xml呢
javac -classpath c:\lib\log4j.jar;D:\lib\logging.jar src\org\myproject\*.java
還可以指定輸出目錄,如輸出到bin(bin目錄要預告建立好)
javac -classpath c:\lib\log4j.jar;D:\lib\logging.jar -d bin src\org\myproject\*.java
至於配置文件,因為要看實際的使用,可以用命令拷貝。如拷貝log4j.properties
/y myConfig\log4j.properties bin
『貳』 如何運行和編譯jar
一、源文件情況
源文件位置為:D:\temp,源文件名(含包名字):com.ldq.WeatherDemo.java
前提:已安裝 jdk ,並配置好環境變數。
二、過程
1、編譯:
提示符進入 D:\temp 路徑下,輸入:javac com\ldq\WeatherDemo.java
生成類文件:WeatherDemo.class
2、打包:
提示符進入 D:\temp 路徑下,輸入:jar cvf WeatherDemo.jar com\ldq\WeatherDemo.class
生成檔案文件:WeatherDemo.jar
3、修改 MANIFEST.MF 文件:
由於引用了外部的類,所以要添加引用類的路徑,即修改MANIFEST.MF文件。保存如下內容到 D:\temp下,文件名 MANIFEST.MF
Manifest-Version: 1.0
Sealed: true
Main-Class: com.ldq.WeatherDemo
Class-Path: lib/jaxrpc.jar lib/log4j-1.2.8.jar lib/mail.jar lib/saaj.jar lib/tools.jar lib/wsdl4j-1.5.1.jar lib/activation.jar lib/axis.jar lib/axis-ant.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar
注意在後面空兩行。
提示符進入 D:\temp 路徑下,輸入:jar umf MANIFEST.MF WeatherDemo.jar
執行時會提示更新的內容。
4、添加包含引用類的相應文件:
在 D:\temp 路徑下,新建 lib 文件夾,講對應的 jaxrpc.jar ... 拷入其中,此時,即可雙擊(或在提示符下輸入:java -jar WeatherDemo.jar)運行 WeatherDemo.jar 文件了。
三、總結
雙擊運行 jar 文件時,虛擬機會到 jar 文件中下找 .MF 文件,找到對應的 Main-Class 運行,引入的類在 Class-Path 所指路徑。
事實上可以利用 winrar或winzip 工具打開 jar 文件,直接將修改好的 MANIFEST.MF 拷入覆蓋,class文件也可以做同樣的操作,節省了輸入復雜難記的命令。另外,對於 javaME 生成的 jar 文件,限制嚴格些,MANIFEST.MF 文件中有個文件大小的欄位,可以先保存,查看文件大小,再修改保存。
另一種方法是通過 Eclipse - Export - Runnable JAR file 直接生成 jar 文件,此時,所有的引用類都被打包在 jar 文件里了。
『叄』 如何識別java命令行編譯參數
javac
用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件的位置
-cp <路徑> 指定查找用戶類文件的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋安裝的擴展目錄的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-d <目錄> 指定存放生成的類文件的位置
使用-d參數,如類中定義了包,則編譯時會自動生成包, 如:javac -d . helloworld.java
表示在當前目錄下編譯Helloworld 類。.表示當前目錄,如helloword中定義有包,則在當前目錄下生成包:
-encoding <編碼> 指定源文件使用的字元編碼
-source <版本> 提供與指定版本的源兼容性
-target <版本> 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標准選項的提要
-X 輸出非標准選項的提要
-J<標志> 直接將 <標志> 傳遞給運行時系統
java
用法: java [-選項] 類 [參數...]
(執行一個類)
或者 java [-選項] -jar jar文件 [參數...]
(執行一個jar文件)
其中,可能的選項包括:
-client 選擇 "client" VM(ginger547:應該是指Virtual Machine)
-server 選擇 "server" VM
-hotspot 與 "client" VM同義 [不贊成]
默認情況的VM是client.
-cp <一個文件夾和zip/jar文件組成的類搜索路徑>
-classpath <一個文件夾和zip/jar文件組成的類搜索路徑>
一個由文件夾,JAR壓縮文件,或者ZIP壓縮文件組成的用來搜索類的列表
-D<名字>=<值>
設置一個系統屬性
-verbose[:class|gc|jni]
使詳細輸出變的可用
-version 列印產品版本然後退出
-version:<值>
只運行指定版本
-showversion 列印產品版本後繼續
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的時候,包含/排除用戶私人的JRE
-? -help 列印幫助信息
-X 列印非標准選項幫助
-ea[:<包名>...|:<類名>]
-enableassertions[:<包名>...|:<類名>]
使斷言可用
-da[:<包名>...|:<類名>]
-disableassertions[:<包名>...|:<類名>]
是斷言不可用
-esa | -enablesystemassertions
使系統級斷言可用
-dsa | -disablesystemassertions
使系統級斷言不可用
-agentlib:<庫名>[=<選項>]
載入本地代理庫<庫名>,例如. -agentlib:hprof
同時可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路徑名>[=<選項>]
通過全路徑名來載入本地代理庫
-javaagent:<jar路徑>[=<選項>]
載入Java編程語言代理,可查看 java.lang.instrument
『肆』 如何在命令行方式下編譯與運行java應用程序
java -jar xxx.jar
首先你得打成一個jar包
其次你的有運行環境,即jdk環境配置
執行第一句即可
『伍』 怎樣在cmd中,將java打包為jar包~
在命令行下打包jar使用如下命令:
jar cvf filename.jar foldername
可以使用JAR命令進行打包
下面是jar命令的幫助說明:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項包括:
-c 創建新的歸檔文件
-t 列出歸檔目錄
-x 解壓縮已歸檔的指定(或所有)文件
-u 更新現有的歸檔文件
-v 在標准輸出中生成詳細輸出
-f 指定歸檔文件名
-m 包含指定清單文件中的清單信息
-e 為捆綁到可執行 jar 文件的獨立應用程序
指定應用程序入口點
-0 僅存儲;不使用任何 ZIP 壓縮
-M 不創建條目的清單文件
-i 為指定的 jar 文件生成索引信息
-C 更改為指定的目錄並包含其中的文件
如果有任何目錄文件,則對其進行遞歸處理。
清單文件名、歸檔文件名和入口點名的指定順序
與 "m"、"f" 和 "e" 標志的指定順序相同。
示例 1:將兩個類文件歸檔到一個名為 classes.jar 的歸檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用現有的清單文件 "mymanifest" 並
將 foo/ 目錄中的所有文件歸檔到 "classes.jar" 中:
jar cvfm classes.jar mymanifest -C foo/ .
下文假設編譯後的class文件在bin目錄下
『陸』 用什麼軟體可以將JAVA工程編譯成*.jar
用jar命令唄~~工具的話可以安裝個Netbeans或者Eclipse之類的,推薦Netbeans有中文版,把你的項目導進來之後選擇生成--生成主項目就Ok了,不過這個感覺有些大材小用,jar命令多簡單呀。
至於你說的沒有哪個命令可能是你的環境變數沒有設置,至於環境變數的設置你可以去網路搜索一下很多,或者去我的空間看一下
『柒』 如何使用命令行編譯和運行Java代碼
這里給你一個具體的場景來講述如何使用命令行編譯和運行Java代碼:
任務
我們有一個相當標準的Java工程,它包含三個頂層文件夾:
/bin-用來存放已編譯好的.class文件
/lib-用來存放第三方.jar文件
/src-存放.java源代碼
我的任務就是要從Java工程根目錄去編譯和運行工程。我們將使用Windows操作系統作為例子(和在Unix系統上的唯一區別就是路徑分隔符是」:「而不是」;「)。
編譯Java代碼
第一步是把文本文件.java源代碼編譯成Java虛擬機位元組碼文件(.class)。這一步使用一個叫javac的JDK工具來完成。
假設我們在應用的根目錄下,從com.example包下嘗試把Application.java文件,以及把lib文件夾中的lib1.jar和lib2.jar庫編譯到目標文件夾bin下,編譯命令應該是如下格式:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java1
編譯完後,/bin/com/example/Application.class應該就會創建出來了。如何Application.java使用了其他工程的類,那麼他們全部會自動被編譯並且放到相應的文件夾下。
運行Java代碼
為了啟動我們剛剛編譯的.class文件,需要另外一個叫java的JDK工具。
假設我們在應用的根目錄下,為了能夠啟動com.example包中的,使用了lib文件夾下的lib1.jar和lib2.jar庫的Application.class文件,啟動命令應該是如下
java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
我們在這里沒有提供文件名,只有一個實際的類名,java會基於提供的classpath(縮寫成cp)路徑去搜索。
『捌』 一個java程序用到了很多jar包,如何用命令行形式來編譯、運行此程序
如果只有一個類的話
需指定關聯jar的classpath
javac
-cp
jars
類
如果多個文件,這個是沒法用命令行動態編譯的
除非你一個個指定
『玖』 命令行如何編譯Java源程序
首先你要設置環境變數的:
右擊我的電腦,選擇屬性,點「高級」,然後找到環境變數。在系統變數下找到path,單擊編輯,輸入你自己的JDK目錄,找到BIN文件夾,這是個例子:
C:\Program Files\Java\jdk1.5.0_07\bin
然後再找到classpath這個變數,也許沒有,那你就自己新建一個,輸入你准備放java文件的目錄。
在DOC環境下,先進入你放JAVA文件的目錄,然後就可以編譯了,下面的是個例子。
D:\JAVACODE javac HelloWorld 這是編譯
D:\JAVACODE java HelloWorld.java 這是運行