簡體   English   中英

在Windows命令行上的jar文件的子包中運行類

[英]Run a class in a sub package in a jar file on Windows command line

我從eclipse中導出了一個jar文件,在jar文件中有Java類文件的各種包和子包。

我想在Windows的命令行中運行這些嵌套類文件之一。

該類有一個main,我正在使用以下代碼嘗試運行它,

java -classpath .;./example.jar example

請注意,示例是類以及jar的名稱。

我也曾嘗試闡明課程的完整路徑

java -classpath .;./example.jar the.whole.path.example

如何運行示例類?

編輯:

好的,這有點愚蠢,完整路徑不正確。 我檢查了無數次,但是直到我回到它時,我才注意到錯誤。

沒有看到您的任何代碼或任何輸出(提示,提示),很難說是怎么回事,但這對我有用:

$ cat x/y/z/A.java
package x.y.z;

public class A
{
    public static void main(String args[]) throws Exception
    {
        System.out.println("here in A");
    }
}
$ javac x/y/z/A.java
$ jar cvf a.jar x/y/z/A.class
added manifest
adding: x/y/z/A.class(in = 459) (out= 311)(deflated 32%)
$ java -classpath a.jar x.y.z.A
here in A

並且如果發帖人或以后會讀到此書的人對Unix不熟悉,以$開頭的行是我在shell中鍵入的命令,其他所有內容都從這些命令輸出。 Eclipse將為您處理前三個問題,然后最后一個java -classpath a.jar xyzA是執行xyzA類中的main方法的命令。

僅運行java -cp example.jar the.whole.path.example應該可以解決問題。 如果不是,則JAR文件中的內容有誤。 類名必須是完全限定的(帶有包名),並且指定的類必須具有正確的main方法:

public static void main(String[] args) {

}

檢查您的假設是否正確。 顯示罐子的結構並將其與您嘗試運行的罐子進行比較:

jar tf example.jar

如果罐子中包含很多條目,則可能要grep /查找相關的類:

jar tf  example.jar | find /i "Example"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM