我知道如何从 .java 或 .class 文件创建 jar。
我有一个 sources.jar
包含 .java
文件。我想编译这些类并打包成一个 jar
再次。
例如: 这是我要编译的 jar:
hadoop-mapreduce-examples-2.2.0-test-sources.jar
.
我做了jar xvf hadoop-mapreduce-examples-2.2.0-test-sources.jar
提取所有内容。
我现在有
ls
META-INF org
ls org/apache/hadoop/
examples mapreduce
ls org/apache/hadoop/examples/
TestBaileyBorweinPlouffe.java TestWordStats.java pi terasort
如您所见,我在 org.apache.hadoop
中有两个包, "examples and mapreduce", 两者都必须编译。我在“示例”中有子包需要编译。
javac org/apache/hadoop/mapreduce/lib/db/TestDBJob.java
编译好的
但是我怎样才能递归编译。我尝试使用通配符“*”。
这是我尝试过的:
javac -cp org/apache/hadoop/examples/*
javac: invalid flag: org/apache/hadoop/examples/pi
Usage: javac <options> <source files>
use -help for a list of possible options
javac org/apache/hadoop/examples/*.*
在最后javac
在上面执行,我没有看到正在编译的子包。仅编译顶级 java 文件。
有没有简单的解决办法比如
javac -jar <input.jar> <output.jar>
将导致 <output-jar>
里面有编译文件。
编辑:
重申我的问题:
给了一个只有 .java
的 jar 文件,我想要一个包含 .class
的 jar 文件以最简单的方式归档
最佳答案
从 DOS 控制台
cd/dir/.class 文件的文件夹。
jar cvf name.jar
关于java - 如何从java中的源jar创建一个包含编译类的jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317650/