2017-05-07 157 views
0

當我創建的jar文件我寫了下面的Java文件:的IntelliJ:爲什麼我不能用一個類從外部JAR

package myjar; 

public class MyClass { 

    public static void hello() { 
     System.out.println("hello"); 
    } 

    public static void main(String[] args) { 
     MyClass.hello(); 
    } 
} 
  1. 我命名的文件MyClass.java。
  2. 我通過鍵入 「javac的SRC /主/爪哇/ myjar這一/ MyClass.java」 創建的類文件
  3. 我生成由命令jar文件: 「罐子CVF myjar.jar的src /主/爪哇/ myjar這一/MyClass.class「

現在,我把jar文件添加到Project Structure中。 jar的名字是'myjar': enter image description here

在IDE中我寫了「import myjar.MyClass」,單詞'myjar'被標記爲紅色。

當我在項目中使用「MyClass.hello()」,我得到一個錯誤:

no main manifest

你知道我可以加載成功呢?

+0

這個罐子有'myjar'包嗎?如果沒有,創建一個,你不能從默認包導入:http://stackoverflow.com/questions/2193226/how-to-import-a-class-from-default-package。 – CrazyCoder

+0

是的。正如你所看到的,類MyClass在myjar包中 – CrazySynthax

+0

檢查jar結構,它應該有'myjar/MyClass.class'並且沒有其他目錄在上面,它也應該有'myjar'目錄,而不僅僅是'MyClass.class'文件在罐子的根部。 – CrazyCoder

回答

1

您只能將類庫中的某些類從classpath中導入到Java源文件中,而不是整個Java歸檔(JAR)文件的內容。所以,如果你有myjar.jar文件類讓Foo.class內包裝內(文件夾)的酒吧,你可以做

import bar.Foo; 
+0

它仍然不能解決它。我編輯了這篇文章。 – CrazySynthax

0

添加的.jar作爲一個的IntelliJ庫後,你仍然需要將其添加到模塊。

enter image description here

然後該庫將出現在依賴關係的模塊的列表。

enter image description here

相關問題