java - 如何从java中的源jar创建一个包含编译类的jar

标签 java jar compilation javac .class-file

我知道如何从 .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/

相关文章:

java - 在java中表示数组对象的类

java - JComponent 未显示,paintComponent 未调用

java - 如何在没有gradle或Maven或Eclipse的情况下将jar文件添加到java项目中

java - 如何编译要在 AWS Lambda 中使用的 C++ 库?

java - 单击按钮后单个 ValueEventListener 未获取值

java - 如何将jar文件和dat文件转换为exe文件

jar - 使用 SBT 处理库中的非托管类路径 jar,以便依赖项目可以访问它们

c++ - 编译DLL时如何添加include

c++ - 如何从多个 cpp 文件编译 WebAssembly?

java - 端口 1100、1101 等被我的服务器占用