我有一个myfile.jar文件.我用jd-gui反编译myfile.jar文件夹中的所有*.class.我在许多文件夹中获得了许多*.java文件
在一些*.java中修复了一些代码后,现在我想将所有*.java重新编译回*.class,并将整个文件夹打包回myfile.jar.
我该怎么做呢?
(这是我第一次玩java代码.)
Paŭ*_*ann 10
您需要一个Java Development Kit(JDK).这包括Java编译器(通常命名javac)和jar存档器.
假设你有一个目录名中的java文件src(然后根据它们的包结构),你会使用
javac -d classdir -sourcepath src src/*.java src/*/*.java src/*/*/*.java ...
Run Code Online (Sandbox Code Playgroud)
编译所有文件.(将*的数量调整为目录级别的数量.如果你只有一些包含源文件的文件夹,你也可以单独列出它们.如果某些类依赖于其他类,你可以省略其他类,编译器会找到并且自动编译它们.)
如果程序需要外部库,请为它们提供-classpath参数.
现在我们在目录中编译了所有已编译的类classdir.查看原始jar文件:其中的任何非类文件也应该复制到您的classdir中(在之前的相同目录中).这最值得注意的包括META-INF/MANIFEST.MF.
然后我们从这些创建一个新的jar文件.该jar工具包含在JDK中.
jar cfm mypackage.jar classdir/META-INF/MANIFEST.MF -C classdir .
Run Code Online (Sandbox Code Playgroud)
(您也可以简单地使用自信的zip程序并将生成的zip文件重命名为.jar.如果您的文件具有非ASCII名称,请确保将文件名编码设置为UTF-8.)
一般来说,要将 Java 代码编译成类,您需要javacJDK 附带的可执行文件。
Unix:
${JAVA_HOME}/bin/javac -d OUTPUT_DIRECTORY SOURCE_FILES
Run Code Online (Sandbox Code Playgroud)
视窗:
%JAVA_HOME%\bin\javac.exe -d OUTPUT_DIRECTORY SOURCE_FILES
Run Code Online (Sandbox Code Playgroud)
编译完代码后,您可以创建 jar(这是一个 zip 文件,其中包含所有类以及有关创建者、版本等的一些元数据)。
${JAVA_HOME}/bin/jar cf output.jar INPUT_FILES
Run Code Online (Sandbox Code Playgroud)
您可以阅读有关可与javac和jar一起使用的不同选项的更多信息。使用像 ant 这样的工具可以更轻松地编译源代码和创建 jar。请参阅javac和jar任务。
| 归档时间: |
|
| 查看次数: |
28887 次 |
| 最近记录: |