2017-05-07 76 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

相关问题