【问题标题】:can't import jar file无法导入jar文件
【发布时间】:2013-01-17 13:09:42
【问题描述】:

我使用这个 cmd 行创建了一个包含三个类的 jar 文件:

C:\...\db>jar cvf views.jar Line.java Points.java Shapes.java

我可以将 jar 文件添加到 IDE,但无法将其导入代码。

另一件事是 jar 文件中的类是 xxx.java,但是在查看另一个 jar 文件时,我注意到这些类是 xxx.class

不知道是不是这个问题。

【问题讨论】:

    标签: java import jar


    【解决方案1】:

    Jar 只不过是归档(压缩)

    您显然是在将 .java 文件压缩到您的 jar 文件中。

    首先使用javac 编译您的.java 文件

    比对生成的 .class 文件发出 jar 命令

    参考How to Create Jar

    【讨论】:

    • 编译.java我需要一个主方法(如果我错了请纠正我),我没有主方法,没有必要。但如果没有主要方法就无法编译它,我会尝试修复它。抱歉,如果我错了,但我是 java 新手 :)
    • 在对应的.java中执行需要main()的.class文件。不是为了编译。可以编译任何有效的 .java 文件注意并非所有 .java 文件都会有 main 方法。
    • 谢谢,我现在更清楚了。我会看到你给我的链接。
    【解决方案2】:

    在创建 JAR 文件而不是源 .java 文件时,您应该参考 .class 文件。

    Here你可以在Oracle官网找到关于JAR创建的教程。

    【讨论】:

      【解决方案3】:

      jar 是一个归档工具,它只是打包你编译的java文件。这意味着您应该首先编译这些 .java 文件,然后将生成的 .class 文件添加到 jar 中。

      【讨论】:

        【解决方案4】:

        我通常希望 .jar 文件包含类而不是 .java 文件(或者至少源可以在类旁边)

        您可以将任何内容压缩到 .jar 文件中(它是另一个名称的 .zip - 请参阅 here for more info),但我怀疑 IDE 需要 .class 文件。请注意,我的 IDE (Intellij) 允许我指定包含源的 jar/zip,但这通常与包含已编译代码的 jar 并排。

        【讨论】:

          【解决方案5】:

          您在 jar 中打包 java 源文件而不是已编译的类文件。如果你想让你的 jar 在 IDE 中使用,你应该打包类文件。类似的东西

          C:\...\db>javac Line.java Points.java Shapes.java
          

          然后

          C:\...\db>jar cvf views.jar Line.class Points.class Shapes.class
          

          【讨论】:

            猜你喜欢
            • 2019-09-03
            • 2020-02-27
            • 2021-07-02
            • 1970-01-01
            • 1970-01-01
            • 2019-01-20
            • 2011-11-18
            • 1970-01-01
            • 2016-11-04
            相关资源
            最近更新 更多