【发布时间】: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
不知道是不是这个问题。
【问题讨论】:
我使用这个 cmd 行创建了一个包含三个类的 jar 文件:
C:\...\db>jar cvf views.jar Line.java Points.java Shapes.java
我可以将 jar 文件添加到 IDE,但无法将其导入代码。
另一件事是 jar 文件中的类是 xxx.java,但是在查看另一个 jar 文件时,我注意到这些类是 xxx.class
不知道是不是这个问题。
【问题讨论】:
Jar 只不过是归档(压缩)
您显然是在将 .java 文件压缩到您的 jar 文件中。
首先使用javac 编译您的.java 文件
比对生成的 .class 文件发出 jar 命令
【讨论】:
在创建 JAR 文件而不是源 .java 文件时,您应该参考 .class 文件。
Here你可以在Oracle官网找到关于JAR创建的教程。
【讨论】:
jar 是一个归档工具,它只是打包你编译的java文件。这意味着您应该首先编译这些 .java 文件,然后将生成的 .class 文件添加到 jar 中。
【讨论】:
我通常希望 .jar 文件包含类而不是 .java 文件(或者至少源可以在类旁边)
您可以将任何内容压缩到 .jar 文件中(它是另一个名称的 .zip - 请参阅 here for more info),但我怀疑 IDE 需要 .class 文件。请注意,我的 IDE (Intellij) 允许我指定包含源的 jar/zip,但这通常与包含已编译代码的 jar 并排。
【讨论】:
您在 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
【讨论】: