我正在使用Java应用程序编写一个简单的程序(不是具有项目的应用程序,而是项目中的应用程序; .java),它具有单个框架。这两个文件都是.java,因此我无法编写JAR所需的清单。 MyApp.java就像一个带包的类,然后导入公共类MyApp {并且有一个main函数,但它仍然是.java!我正在JDeveloper 11g中写它,如果它有帮助......
如何从这些文件制作JAR?
答案 0 :(得分:78)
打开命令提示符。
转到您拥有.java文件的目录
创建目录构建
从命令行运行java编译
javac -d ./build *.java
如果没有错误,在构建目录中你应该有你的类树
转到构建目录并执行
jar cvf YourJar.jar *
用于添加清单检查jar命令行开关
答案 1 :(得分:24)
只需使用命令行:
javac MyApp.java
jar -cf myJar.jar MyApp.class
当然IDE避免使用命令行终端
答案 2 :(得分:10)
好的,这是我想要找到的解决方案,而不是在这里我写的:
首先创建与.java文件定义的包对应的目录结构,如果是my.super.application则创建目录" my"在里面"超级"并在其中包含.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/
以上将创建应用程序及其相应的Manifest,指示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名称。
答案 3 :(得分:7)
通常,您需要指定清单,如下所示:
jar -cvfm myJar.jar myManifest.txt myApp.class
其中包含:&#34;创建详细的jar文件名manifestFilename&#34;,然后是要包含的文件。详细信息意味着打印有关它正在做什么的消息。
请注意,您提供的清单文件的名称可以是任何名称,因为jar
会自动将其重命名并将其放入jar文件中的正确目录中。
答案 4 :(得分:6)
这可以在没有终端的情况下直接从IDE完成。例如Netbeans。
答案 5 :(得分:2)
这是另一种奇特的方式:
$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class
将从当前目录中获取所有.java文件(ls | grep .java
)并将其编译为.class(xargs -I {} javac {}
),然后从以前编译的类中创建jar文件({{1 }})。
答案 6 :(得分:0)
从Java代码编译JAR的最适合初学者的方法是使用诸如Netbeans或Eclipse之类的IDE(集成开发环境;本质上只是用于开发的用户友好软件)。
您始终可以使用命令行非常轻松地完成所有操作。执行以下命令之前,请确保您与目标文件位于同一目录中:
import random as rm
import pandas as pd
import numpy as nm
from pandas import Series, DataFrame
CHCbot_Emp = DataFrame({'Employee_Name':['Deepak','Varadharajan','Akash','Jeffrin','Ashwini','Sathish','Vikram','Narasiman','satyavathi'],
'Employee_Code':['IS4001','IS4002','IS4003','IS4004','IS4005','IS4006','IS4007','IS4008','IS4009']})
CHCbot_Emp
for rows in CHCbot_Emp.itertuples(index=False):
print(rows.Employee_Name+" "+rows.Employee_Code)
print('Hey '+rows.Employee_Name+'!!! Pick your Child')
random_Variable = CHCbot_Emp.sample(n=1)
print(random_Variable.Employee_Code+" "+random_Variable.Employee_Name)
...分别将“ YourApp”和“ YourJar”更改为文件的正确名称。