javac、jar使用实录
因項目管理部署需要,記錄一下過程,以免下次忘記了,再次使用又需要重頭再來,只記錄正確的操作方式,可能會提到某些錯誤
?
建立項目所在目錄F:\www
案例一
其下建立項目的java源文件的包目錄結構、java源文件
com\test\hello\HelloWorld.java,代碼如下:
1 package com.test.hello; 2 3 public class HelloWorld{ 4 5 public void say(){ 6 System.out.println("hello world !"); 7 } 8 9 }?
com\test\people\People.java,代碼如下
1 package com.test.people; 2 3 import com.test.hello.*; 4 5 public class People{ 6 7 public void say(){ 8 HelloWorld hello=new HelloWorld(); 9 hello.say(); 10 } 11 12 public static void main(String[] args){ 13 People people=new People(); 14 people.say(); 15 } 16 17 }?
從控制臺進入F:\www目錄下,運行如下兩條命令,控制臺輸出正確結果
javac com/test/people/People.java com/test/hello/HelloWorld.java java com/test/people/People?
說明1:
從源文件中可以發現,在People.java中引用HelloWorld,然而javac編譯語句寫為如下語句也是可以的(源文件的順序相反)
javac com/test/hello/HelloWorld.java com/test/people/People.java這是否可以說明javac編譯語句中源文件的引用順序無關?【等待驗證】
?
說明2:
上述的編譯命令換為如下語句也是可以的,注意是在F:\www目錄下
javac com/test/people/People.java但是如果進入到people目錄下,則無法編譯
進入test目錄下,鍵入如下語句也可以編譯
javac people/People.java hello/HelloWorld.java但是運行卻必須在F:\www目錄下
?
案例二
從控制臺進入F:\www目錄下,在案例一的基礎上(主要是需要其中編譯后的某些.class文件,看下面的命令就會明白),運行如下命令,將com/test/hello/HelloWorld.java打包為hello.jar文件,以此來測試在程序中引用第三方jar包時程序的編譯與運行
jar cf hello.jar com/test/hello/HelloWorld.class此時在F:\www目錄下會得到hello.jar文件
接著鍵入jar tvf hello.jar命令,回車,可查看hello.jar的內容結構
再接著刪除項目的hello目錄(包括其下的文件),鍵入如下命令運行程序,控制臺輸出正確結果
java -cp .;hello.jar com/test/people/People?
說明:
在上述刪除hello目錄時,可刪除people目錄下的People.class文件,鍵入如下命令進行編譯
javac -cp hello.jar com/test/people/People.java接著鍵入上面的運行命令,控制臺輸出正確結果
?
下面接著做一些其他的測試,我會慢慢更新
大家如果看到其他情形麻煩告知,省的我慢慢去測試,O(∩_∩)O謝謝
?
案例三
引用多個第三方jar包的情況
?
在F:\www目錄下新建org/apache/service/Work.java,代碼如下:
1 package org.apache.service; 2 3 public class Work{ 4 5 public void writeCode(){ 6 System.out.println("I should write java code everyday !"); 7 } 8 9 }鍵入如下命令,進行編譯、打包,在F:\www目錄下得到apache-service_1.0.jar
javac org/apache/service/Work.javajar cf apache-service_1.0.jar org/apache/service/Work.class
刪除org目錄,修改People.java源代碼如下:
1 package com.test.people; 2 3 import com.test.hello.*; 4 import org.apache.service.*; 5 6 public class People{ 7 8 public void say(){ 9 HelloWorld hello=new HelloWorld(); 10 hello.say(); 11 Work work=new Work(); 12 work.writeCode(); 13 } 14 15 public static void main(String[] args){ 16 People people=new People(); 17 people.say(); 18 } 19 20 }鍵入如下命令,進行編譯、運行,控制臺輸出正確結果
javac -cp hello.jar;apache-service_1.0.jar com/test/people/People.java java -cp .;hello.jar;apache-service_1.0.jar com/test/people/People?
?
至此差不多測試完畢
?
轉載于:https://www.cnblogs.com/studyLog-share/p/4669835.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的javac、jar使用实录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery实现页面加载时删除特定cla
- 下一篇: N - Is It A Tree?(判断