【问题标题】:IntelliJ: Why can't I use a class from external jarIntelliJ:为什么我不能使用外部 jar 中的类
【发布时间】:2017-05-07 22:08:19
【问题描述】:

当我创建 jar 文件时,我编写了以下 java 文件:

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/main/java/myjar/MyClass.java”创建了一个类文件
  3. 我通过命令生成了一个jar文件: "jar cvf myjar.jar src/main/java/myjar/MyClass.class"

现在,我将 jar 文件添加到项目结构中。 jar 的名称是“myjar”:

在 IDE 中我写了“import myjar.MyClass”,并且“myjar”这个词被标记为红色。

当我在项目中使用 'MyClass.hello()' 时,出现错误:

没有主清单

你知道我可以怎样才能成功加载它吗?

【问题讨论】:

  • 这个jar有myjar包吗?如果没有,创建一个,不能从默认包导入:stackoverflow.com/questions/2193226/…
  • 是的。如您所见,MyClass 类在 myjar 包中
  • 检查jar结构,它应该有myjar/MyClass.class,上面没有其他目录,它还应该有myjar目录,而不仅仅是MyClass.class在jar的根目录下。

标签: java intellij-idea jar


【解决方案1】:

您只能将类路径上的库中的一些类导入 Java 源文件,而不是整个 Java 归档 (JAR) 文件的内容。因此,如果您在包(文件夹)栏内有 myjar.jar 文件类 Foo.class,则可以这样做

import bar.Foo;

【讨论】:

    【解决方案2】:

    在 IntelliJ 中将 .jar 添加为库后,您仍需要将其添加到模块中。

    然后这个库就会出现在模块的依赖列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多