如何使用 Eclipse 或 NetBeans 编译 Java 文件而不会出错



我最好从一开始就解释一下情况。我想更改.jar文件的分辨率,所以我用 Java 反编译器反编译它,然后我转到 Notepad++ 并做了一个小编辑,在 2 行中为 .java 文件:

    paramGraphics.setClip(0, 0, 176, 208);

对此:

    paramGraphics.setClip(0, 0, 320, 240);

和:

paramGraphics.setClip(0, 0, 176, 208);

对此:

paramGraphics.setClip(0, 0, 320, 240);

然后得救了。之后,我想将该文件编译为一个类。我尝试使用 javac 命令,不起作用并显示 100 个错误。它没有编译。十个使用 NetBeans。相同的结果,它没有编译。

这是 NetBeans 中的编译器输出:

ant -f "C:UsersUSERMis documentosNetBeansProjectsJavaApplication4" -Dnb.internal.action.name=rebuild clean jar init: deps-clean: Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4build Updating property file: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildbuilt-clean.properties Deleting directory C:UsersUSERMis documentosNetBeansProjectsJavaApplication4build clean: init: deps-jar: Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4build Updating property file: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildbuilt-jar.properties Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildclasses Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildempty Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildgenerated-sourcesap-source-output Compiling 1 source file to C:UsersUSERMis documentosNetBeansProjectsJavaApplication4buildclasses C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:4: error: cannot find symbol public Image jdField_int; symbol: class Image location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:18: error: cannot find symbol public a(InputStream paramInputStream) symbol: class InputStream location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:61: error: cannot find symbol public void jdField_if(Graphics paramGraphics) symbol: class Graphics location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:70: error: cannot find symbol public void a(Graphics paramGraphics) symbol: class Graphics location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:47: error: cannot find symbol this.jdField_int = Image.createImage(this.jdField_do, 0, this.jdField_do.length); symbol: variable Image location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:76: error: cannot find symbol int k = j + b.bD + this.jdField_new[this.jdField_else] + 16; symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:77: error: cannot find symbol int m = i + b.bF + 16; symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:78: error: cannot find symbol int n = i + b.bF + this.jdField_try[this.jdField_else] + 16; symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:79: error: cannot find symbol int i1 = e.jdField_if(m, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:80: error: cannot find symbol int i2 = e.jdField_if(n, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:83: error: cannot find symbol i3 = e.jdField_if(n, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:85: error: cannot find symbol i3 = e.jdField_if(m + 16, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:88: error: cannot find symbol i4 = e.jdField_if(m, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:90: error: cannot find symbol i4 = e.jdField_if(n - 16, k); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:91: error: cannot find symbol int i5 = e.jdField_if(m, k - 16); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:92: error: cannot find symbol int i6 = e.jdField_if(n, k - 16); symbol: variable e location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:100: error: cannot find symbol paramGraphics.setClip(i, j, this.jdField_try[this.jdField_else], this.jdField_new[this.jdField_else] - i7 - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF)); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:107: error: cannot find symbol paramGraphics.setClip(i + 16 + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 32 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:107: error: cannot find symbol paramGraphics.setClip(i + 16 + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 32 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:107: error: cannot find symbol paramGraphics.setClip(i + 16 + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 32 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:107: error: cannot find symbol paramGraphics.setClip(i + 16 + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 32 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:112: error: cannot find symbol paramGraphics.setClip(i + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:112: error: cannot find symbol paramGraphics.setClip(i + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:112: error: cannot find symbol paramGraphics.setClip(i + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:112: error: cannot find symbol paramGraphics.setClip(i + (16 - (i + b.bF & 0xF)), j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 + (i + b.bF & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:119: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:119: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:119: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - 16 - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:124: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:124: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a C:UsersUSERMis documentosNetBeansProjectsJavaApplication4srcjavaapplication4a.java:124: error: cannot find symbol paramGraphics.setClip(i, j + this.jdField_new[this.jdField_else] - (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) - i7, this.jdField_try[this.jdField_else] - (i + b.bF + this.jdField_try[this.jdField_else] & 0xF), (j + b.bD + this.jdField_new[this.jdField_else] & 0xF) + i7); symbol: variable b location: class a 31 errors C:UsersUSERMis documentosNetBeansProjectsJavaApplication4nbprojectbuild-impl.xml:920: The following error occurred while executing this line: C:UsersUSERMis documentosNetBeansProjectsJavaApplication4nbprojectbuild-impl.xml:260: Compile failed; see the compiler error output for details. BUILD FAILED (total time: 2 seconds)

如何将我的文件重新编译到类?我对Java了解不多,所以我是它的新手。谁能帮我?

提前致谢


更新!

这是现在的输出日志...

    ant -f "C:\Users\USER\Mis documentos\NetBeansProjects\JavaApplication5" -Dnb.internal.action.name=rebuild clean jar
init:
deps-clean:
Updating property file: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildbuilt-clean.properties
Deleting directory C:UsersUSERMis documentosNetBeansProjectsJavaApplication5build
clean:
init:
deps-jar:
Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5build
Updating property file: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildbuilt-jar.properties
Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildclasses
Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildempty
Created dir: C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildgenerated-sourcesap-source-output
Compiling 8 source files to C:UsersUSERMis documentosNetBeansProjectsJavaApplication5buildclasses
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5srcjavaapplication5Dun.java:22: error: <identifier> expected
      a.char = true;
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5srcjavaapplication5Dun.java:22: error: not a statement
      a.char = true;
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5srcjavaapplication5Dun.java:22: error: illegal start of expression
      a.char = true;
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5srcjavaapplication5Dun.java:22: error: ';' expected
      a.char = true;
4 errors
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5nbprojectbuild-impl.xml:920: The following error occurred while executing this line:
C:UsersUSERMis documentosNetBeansProjectsJavaApplication5nbprojectbuild-impl.xml:260: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)

我的朋友使用任何 IDE 编译您的代码,它都会向您显示错误,然后相应地添加该类所需的资源,然后尝试运行它。

你需要拥有作者用来编译原始类/jar X 的所有 jar Y.假设 jar X 是自给自足的(即它不依赖于像 Y 这样的外部 jar),那么您可以将原始 X 添加到类路径中,然后再次尝试编译修改后的类/jar X(包括您的更改)。但是现在几乎没有罐子是自给自足的,所以你可能没有太多的运气。你只需要知道作者在编译时使用的所有依赖项来生成jar X。

最新更新