为啥将class反编译为java后,java直接编译时有错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥将class反编译为java后,java直接编译时有错误相关的知识,希望对你有一定的参考价值。

我将一个小的手机java软件解压后,有一个class文件,
想要反编译为java后改写代码,可是反编译后的java,
即使没有更改的时候,仍然不能编译,错误提示是
软件包javax.microedition.midlet不存在import javax.microedition.midlet.MIDlet;和
软件包javax.microedition.midlet不存在import javax.microedition.midlet.MIDletStateChangeException;
我的电脑缺少软件包么?我是初学者,麻烦高手解释一下呗,谢谢了,呵呵
(PS:我电脑配置的是java基础的环境变量,所以编译不了手机java的有些代码么?)

midlet不存在? 如果你用的是Eclipse那你在配置环境时有问题 没关联EclipseMe 和关联WTK MIDletStateChangeException应该是有异常
反编译的软件一般都会使用如a b c之类的变量名 导致很多类的情况下容易重名导致变量混乱 最好改成自己习惯的变量名
至于环境变量的配置按这个来
右键点击我的电脑--->属性--->高级--->环境变量--->系统变量--->新建
path: C:\j2sdk1.4.2_05\bin
classpath: .;C:\j2sdk1.4.2_05\lib\dt.jar;C:\j2sdk1.4.2_05\lib\tools.jar 确定
改了还不行的话把代码贴出来看看 祝你走运~~~
参考技术A 你把这个class文件单独拿出来编译了?
这是因为原来的classpath下有javax.microedition.midlet.MIDlet这个类,现在你的编译时的classpath下没有这个类了。你可以去网上下一个javax.microedition.midlet的包,放在你编译时的classpath里,然后编译就可以。
建议你把这个.java放在原来的目录下编译
参考技术B 貌似。是你没有用 J2ME之类的环境吧?
环境配对了的话。javax.microedition.midlet就是自带的了。。。
已经有了。。。我印象是。。。好久没弄这个东西了。。。
举例。。你用普通的project或者是Web service 是跑不了j2me的程序的。。。。
参考技术C 没有第三包,去下载这些第三方包即可

以上是关于为啥将class反编译为java后,java直接编译时有错误的主要内容,如果未能解决你的问题,请参考以下文章

Oolong工具:.class二进制文件反编译为.j汇编文件

java 反编译

将 EXE 反编译为 ASM

如何将 .hex 文件反编译为 Arduino 的 C++?

java命令:javac/java/javap

如何将 .NET EXE 反编译为可读的 C# 源代码?