如何从.java创建JAR

时间:2012-03-30 10:31:24

标签: java jar

我正在使用Java应用程序编写一个简单的程序(不是具有项目的应用程序,而是项目中的应用程序; .java),它具有单个框架。这两个文件都是.java,因此我无法编写JAR所需的清单。 MyApp.java就像一个带包的类,然后导入公共类MyApp {并且有一个main函数,但它仍然是.java!我正在JDeveloper 11g中写它,如果它有帮助......

如何从这些文件制作JAR?

7 个答案:

答案 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文件中包含所需的库。

您可以改为:

  1. 手动将库提取到jar文件的根文件夹
  2. 使用诸如Netbeans之类的IDE并在nbproject / build-impl.xml的post-jar部分中插入规则以提取jar中的库。见下文。
  3. <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。

  1. 使用包创建一个单独的项目(Create Project - Java - Java Class Library)。
  2. 将.java类放在那里。
  3. 构建此项目。
  4. 转到项目文件夹,在那里找到build和dist文件夹。
  5. 在你的dist文件夹中找到.jar文件。
  6. 获取您的其他项目并将此.jar文件添加到项目库。
  7. 如果自动导入,您现在可以直接从代码中引用此库及其方法中的类。

答案 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(集成开发环境;本质上只是用于开发的用户友好软件)。

  • 安装并设置IDE。 Here is the latest version of Eclipse
  • 在IDE中创建一个项目,并将Java文件放入项目文件夹中。
  • 在IDE中选择项目,然后将项目导出为JAR。再次检查导出时是否选择了适当的Java文件。

您始终可以使用命令行非常轻松地完成所有操作。执行以下命令之前,请确保您与目标文件位于同一目录中:

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”更改为文件的正确名称。

相关问题