如何从.java文件创建JAR?

如何从.java文件创建JAR?,java,jar,Java,Jar,我正在使用一个具有单个框架的Java应用程序(不是有项目的应用程序,而是项目中的应用程序;.Java)编写一个简单的程序。这两个文件都是.java,因此我无法编写JAR所需的清单 java像一个带包的类一样开始,然后导入公共类MyApp,并有一个主函数,但它仍然是.java文件!如果有帮助的话,我正在用jdeveloper11g编写它 您知道如何使用这些文件制作JAR吗?只需使用命令行即可: javac MyApp.java jar -cf myJar.jar MyApp.class j

我正在使用一个具有单个框架的Java应用程序(不是有项目的应用程序,而是项目中的应用程序;.Java)编写一个简单的程序。这两个文件都是.java,因此我无法编写JAR所需的清单

java像一个带包的类一样开始,然后导入公共类
MyApp
,并有一个主函数,但它仍然是.java文件!如果有帮助的话,我正在用jdeveloper11g编写它


您知道如何使用这些文件制作JAR吗?

只需使用命令行即可:

javac MyApp.java
jar -cf myJar.jar MyApp.class
   javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
请务必避免使用命令行终端打开命令提示符

转到存放.java文件的目录

创建目录生成

从命令行运行java编译

javac -d ./build *.java
如果没有错误,在构建目录中应该有类树

移动到build目录并执行以下操作:

jar cvf YourJar.jar *

要添加manifest check jar命令行开关

,这可以在没有终端的情况下直接从IDE完成。例如,Netbeans

  • 使用包创建一个单独的项目(创建project-Java-Java类库)
  • 将您的.java类放在那里
  • 建立这个项目
  • 转到您的项目文件夹,并在那里找到build和dist文件夹
  • 在dist文件夹中查找.jar文件
  • 获取其他项目,并将此.jar文件添加到项目库中
  • 如果导入是自动完成的,您现在可以直接从代码引用这个库中的类及其方法

  • 通常,您需要指定清单,如下所示:

    jar -cvfm myJar.jar myManifest.txt myApp.class
    
    内容为:“创建详细的jarFilename manifestFilename”,后面是要包含的文件。详细的意思是打印关于它正在做什么的消息


    请注意,您提供的清单文件的名称可以是任何名称,因为
    jar
    将自动重命名它并将其放入jar文件中的正确目录中。

    好的,这是我希望找到的解决方案,而不是在这里编写它:

    首先创建与为.java文件定义的包相对应的目录结构,如果它是my.super.application,则创建目录“my”,并在其内部创建目录“super”,在其内部创建.java文件“App.java”

    然后从命令行:

    javac MyApp.java
    jar -cf myJar.jar MyApp.class
    
       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文件中包含所需的库

    您可以改为:

  • 手动将库提取到jar文件的根文件夹
  • 使用Netbeans之类的IDE,并在nbproject/build-impl.xml的post jar部分中插入一条规则,以提取jar中的库。见下文
  • 
    

    将库添加到Netbeans IDE后,可以在project.properties文件中找到file.reference名称。

    下面是另一种奇特的方法:

    $ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class
    

    它将从当前目录中获取所有.java文件(
    ls | grep.java
    ),并将它们编译成.class(
    xargs-I{}javac{}
    ),然后从以前编译的类(
    jar-cf myJar.jar*.class
    )创建jar文件.

    也许从Java代码编译JAR最适合初学者的方法是使用IDE(集成开发环境;基本上只是用户友好的开发软件),如Netbeans或Eclipse

    • 安装并设置IDE
    • 在IDE中创建一个项目,并将Java文件放在项目文件夹中
    • 在IDE中选择项目并将项目导出为JAR。在导出时仔细检查是否选择了适当的java文件
    您可以使用命令行轻松地完成这一切。执行以下命令之前,请确保您与目标文件位于同一目录中:

    javac YourApp.java
    jar -cf YourJar.jar YourApp.class
    

    …将“YourApp”和“YourJar”分别更改为文件的专有名称。

    我认为使用诸如ANT或MavenAgree与Chuck的打包工具可以更轻松地实现这一点。看看蚂蚁。IDE非常适合开发,但您需要了解事物是如何工作的。java文件通过javac编译为.class文件,之后,可以使用jar命令将.class文件打包到jar中。(Ant有这样做的任务,甚至jdeveloper也有这样做的向导)。快速的谷歌搜索会在这里找到一个方法:你能澄清你的问题吗?转到source dir并运行命令:-javac*.java&&jar cvf JarName.jar*.classI我已经尝试过从命令行编译,但我得到一个错误:Frame1.java:23:package oracle.jdeveloper.layout不存在我该如何解决这个问题?对于这些新手问题,很抱歉……您必须构建引用类中引用的所有库的类路径。请检查您的jdeveloper安装,应该有一些ant构建示例(build.xml文件)和至少两个关于如何在Oracle网站上将jdeveloper与ant一起使用的好教程。@user1303007请看这里,我在jar命令中添加了一个选项,可以自动将主类添加到清单中
    jar cfe Main.jar Main*
    (我有点困惑,我不得不把主类名放在输出文件名之后。)我想指出:
    您必须移动到构建目录
    。如果您尝试
    jar cvf YourJar.jar./build/*
    ,您将在以后运行jar文件时遇到问题。上述方法有效,但我需要指定myApp的
    .class
    。所以这里也有拼写错误,它假设没有包语句。不够。