我正在使用具有单个框架的Java应用程序(不是具有项目的应用程序,而是项目中的应用程序;.java)编写一个简单的程序。这两个文件都是.java,因此我无法编写JAR所需的清单。
该MyApp.java开始像一类包,然后导入公共类MyApp
和具有的主要功能,但它仍然是java文件!如果有帮助,我将在JDeveloper 11g中编写它。
有什么想法如何从这些文件制作JAR吗?
我正在使用具有单个框架的Java应用程序(不是具有项目的应用程序,而是项目中的应用程序;.java)编写一个简单的程序。这两个文件都是.java,因此我无法编写JAR所需的清单。
该MyApp.java开始像一类包,然后导入公共类MyApp
和具有的主要功能,但它仍然是java文件!如果有帮助,我将在JDeveloper 11g中编写它。
有什么想法如何从这些文件制作JAR吗?
Answers:
打开命令提示符。
转到您拥有.java文件的目录
创建目录构建
从命令行运行Java编译
javac -d ./build *.java
如果没有错误,则在构建目录中应该有您的类树
移至构建目录并执行
jar cvf YourJar.jar *
用于添加清单检查jar命令行开关
jar cfe Main.jar Main *
(尽管我很困惑,我不得不将Main-Class名称放在输出文件名之后。)
只需使用命令行即可:
javac MyApp.java
jar -cf myJar.jar MyApp.class
确保IDE避免使用命令行终端
.class
myApp。就是这样jar -cf myJar.jar myApp.class
好的,这是我想找到的解决方案,我在这里写了:
首先创建与为.java文件定义的包相对应的目录结构,如果它是my.super.application,则创建目录“ my”,在其中的目录“ super”和在其中的.java文件“ App.java”
然后从命令行:
javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
注意,如果在Windows下使用“,”分隔多个文件,则上面将包含多个库,否则在GNU / Linux下使用“:”创建一个jar文件。
jar -cvfe App.jar App my/app/
上面将创建带有相应清单的应用程序,该清单将应用程序作为主要类。
使用Java或jar命令行参数无法在jar文件中包括所需的库。
您可以改为:
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
<jar jarfile="${dist.jar}" update="true">
<zipfileset src="${dist.jar}" includes="**/*.class" />
<zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
<zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
</jar>
</target>
将库添加到Netbeans IDE之后,可以在project.properties文件中找到file.reference名称。
通常,您将需要指定一个清单,例如:
jar -cvfm myJar.jar myManifest.txt myApp.class
内容为:“创建详细的jarFilename manifestFilename”,后跟要包含的文件。详细表示打印有关其操作的消息。
请注意,您提供的清单文件的名称可以是任何名称,因为jar
它将自动重命名清单文件并将其放入jar文件内的正确目录中。
这是执行此操作的另一种理想方式:
$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class
它将ls | grep .java
从当前目录中获取所有.java文件()并将其编译为.class(xargs -I {} javac {}
),然后从先前编译的类(jar -cf myJar.jar *.class
)创建jar文件。
从Java代码编译JAR的最适合初学者的方法可能是使用IDE(集成开发环境;本质上只是用于开发的用户友好软件),例如Netbeans或Eclipse。
您始终可以使用命令行非常轻松地完成所有操作。执行以下命令之前,请确保您与目标文件位于同一目录中:
javac YourApp.java
jar -cf YourJar.jar YourApp.class
...分别将“ YourApp”和“ YourJar”更改为文件的正确名称。