Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java编辑Jar文件_Java_Compiler Construction_Jar_Edit_Decompiler - Fatal编程技术网

Java编辑Jar文件

Java编辑Jar文件,java,compiler-construction,jar,edit,decompiler,Java,Compiler Construction,Jar,Edit,Decompiler,我有一个jar文件,其中包括几个类。在那个jar中有一个Confirmation.class文件,我想编辑它。我用JAD反编译了那个类。然后我用notepad++编辑它并保存为.java文件 现在,如何使用其他类创建新的jar文件 其他文件的格式是.class,但我的是.java,这有问题吗 如果是,我如何编译我的.java类?(当我使用命令javac Confirmation.java时,它会给出错误并需要其他类) 谢谢.您可以尝试在Java IDE中复制和粘贴代码,如Eclipse,NetB

我有一个jar文件,其中包括几个类。在那个jar中有一个Confirmation.class文件,我想编辑它。我用JAD反编译了那个类。然后我用notepad++编辑它并保存为.java文件

现在,如何使用其他类创建新的jar文件

其他文件的格式是.class,但我的是.java,这有问题吗

如果是,我如何编译我的.java类?(当我使用命令javac Confirmation.java时,它会给出错误并需要其他类)


谢谢.

您可以尝试在Java IDE中复制和粘贴代码,如
Eclipse
NetBeans
等,并要求IRC为您编译。祝你有愉快的一天:)

你对其他罐子有依赖关系吗

如果是这种情况,您必须提前将它们放在编译器类路径上

在任何情况下,只要反编译所有包(我使用jdgui),更改类,编译,打开原始jar作为zip文件,将新类放在上面,就完成了

另一种方法是为缺少的依赖项创建虚拟类


就个人而言,我真的不鼓励这种使用已经编译好的软件包进行“逆向工程”的方法,但我理解这样的情况:您无法访问原始源代码,但您需要紧急修复某些问题(例如:在一家公司工作,您的代码来自地球另一端的外部提供商……)

您的命令不正确。您必须告诉编译器在哪里可以找到.java、.class文件Confirmation.java所依赖的文件。读这里。提供jar的lincence是否允许更改源代码?我不知道如何在命令中调用多个类。谢谢。是的,它依赖于另一个jar文件。正如您所说,我在公司工作,代码来自不同的提供商:)而您没有访问这些JAR的权限?如果不是这样的话,我过去所做的,即使听起来很“便宜”,就是创建伪空类来精确匹配我要编译的类的导入。不,我还有另一个jar。但是没有必要改变其中的任何内容。我只想为一个类添加一个变量和get()set()方法。不,不能编辑。这只是对我正在使用的内容的评论。我不知道如何使用JAD,但是使用JD-GUI,您可以将所有包反编译成包含结构的.java类,这将帮助您进行更改,然后重新编译