亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建一個罐子。在課堂上使用它。在命令行中使用 jar 執行類?

如何創建一個罐子。在課堂上使用它。在命令行中使用 jar 執行類?

冉冉說 2023-06-04 11:24:53
我正在嘗試解決部分問題。這是我的第一部分我需要創建一個 JAR,從 Java 類調用該 JAR 并在命令行中執行它。這是我所做的。目錄結構:root->com->test->sample->Sample1.javaSample1.java是這樣的:        package com.test.sample;        public class Sample1 {        // --- Native methods        //public native boolean booleanMethod(boolean bool);        // --- Main method to test our native library        public void Sample1() {        }        public void callingBool() {            //System.loadLibrary("Sample1");            //boolean bool = this.booleanMethod(true);            //System.out.println("booleanMethod: returned" + bool);            System.out.println("booleanMethod: Called without loading sample");            }        }我從這個轉到根目錄中創建了一個 Jar。使用命令    jar cvf asd.jar com    Output:    added manifest    adding: com/(in = 0) (out= 0)(stored 0%)    adding: com/test/(in = 0) (out= 0)(stored 0%)    adding: com/test/sample/(in = 0) (out= 0)(stored 0%)    adding: com/test/sample/Sample1.java(in = 494) (out= 236)     (deflated 52%)    jar -tf asd.jar    META-INF/    META-INF/MANIFEST.MF    com/    com/test/    com/test/sample/    com/test/sample/Sample1.java所以現在創建了 JAR。我將 JAR 復制粘貼到另一個目錄“jaronly”將另一個 Java 文件 Sample1Caller 添加到 /jaronly 中:    import  com.test.sample.Sample1;    public class Sample1Caller {        // --- Native methods        //public native boolean booleanMethod(boolean bool);            // --- Main method to test our native library        public static void main(String[] args) {            //System.loadLibrary("Sample1");            Sample1 sample = new Sample1();            sample.callingBool();            System.out.println("Callled Sample1 now" );        }    }在此之后,我在 /jaronly 中編譯 Sample1Caller.javajavac -cp .:./asd.jar Sample1Caller.java這會編譯并生成 2 個類文件 Sample1Caller.class 和 Sample1.class我不確定是否應該創建 Sample1.class(我已經從 asd.jar 中引用它)它編譯但不執行。我的執行命令或生成 .jar 文件或使用 java 編譯 jar 有問題嗎?
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

JAR 文件應該包含類而不是源代碼。所以在制作asd.jar 之前,您應該先編譯Sample1.java。這條線可以解決問題


javac com/test/sample/*.java

但是 Sample1.java 仍將位于 JAR 中,您不希望它存在于此。


要為您的構建添加更多結構,我建議您創建以下文件夾結構:


 sample_project

 sample_project/src

 sample_project/src/com/test/sample/Sample1.java

 sample_project/target

 sample_project/build.bat

然后 build.bat 的內容將是:


:: compile

cd src

javac com/test/sample/*.java -d ../target


:: create jar

cd ../target

jar cvf asd.jar com


:: finish

cd ..


查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號