如何从.java文件创建JAR?
我正在使用一个具有单个框架的Java应用程序(不是有项目的应用程序,而是项目中的应用程序;.Java)编写一个简单的程序。这两个文件都是.java,因此我无法编写JAR所需的清单 java像一个带包的类一样开始,然后导入公共类如何从.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
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
通常,您需要指定清单,如下所示:
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文件中包含所需的库
您可以改为:
将库添加到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
。所以这里也有拼写错误,它假设没有包语句。不够。