myeclipse重新编译java,反编译class⽂件并重新编译的⽅法在没有.java源码的情况下,如果想修改⼀个.class⽂件。可以通过以下步骤实现:
修改前的class⽂件:
⼀、反编译.class⽂件成.java⽂件。
1、可以使⽤Java Decompiler这个⼯具,直接打开对应的.class⽂件。然后点击菜单:File→Save Source,将⽂件保存成.java⽂件。如下:
PS:Java Decompiler⼯具还可以⽤来反编译jar包,有时候需要了解下jar包⾥的代码实现,如果开发⼯具⾥看不到,可以直接⽤Java Decompiler打开jar包。
⼆、修改该.java⽂件中的内容。
可以直接⽤开发⼯具如MyEclipse,或者⽂本编辑器的⽅式对.java⽂件进⾏修改。
三、重新编译成.class⽂件。
前⾯2步⽐较简单,重点是这⼀步。重新编译成.class可以通过javac命令来执⾏。
1、⾸先将.java⽂件放到JDK的bin⽬录下,如:“D:\Java\jdk1.6.0_10\bin\”。PS:如果要编译的java⽂件中没有依赖其他类,单独放就可以。如果有依赖原先项⽬中的其他类,可以将原先整个项⽬的classes⽂件⽬录都放进JDK⽂件夹的lib⽬录下。
2、右键.java⽂件→⽤记事本打开该⽂件→⽂件→另存为→检查.java⽂件是否是ANSI编码,如下图。如果是UTF-8会因为乱码⽽编译报错,保存成ANSI编码。
3、开始菜单→运⾏...→cmd,打开命令⾏⼯具,使⽤javac命令编译java⽂件。如:“javac
d:/java/jdk1.6.0_10/bin/test/TestDecompile.java”。如果没有报错(PS:如果报缺少依赖包的错误请看
第四步),就是编译成功了,可以在.java⽂件所在的⽬录到编译好的.class⽂件,如下:
4、可⽤Java Decompiler⼯具,查看.class⽂件中的内容是否正确,如下:
PS:反编译.class⽂件并重新编译的⽅法到这⾥就讲完了。
四、编译时缺少依赖包的解决⽅法。
1、如果编译的时候报出依赖的包不存在,如下:
2、可以将缺少的jar包放到JDK⽬录下的lib⽬录,再重新编译(如果缺的是⾃⼰编写的class⽂件,处理⽅法相同)。
3、如果还是识别不到,则需要配置下环境变量。右键我的电脑→属性→⾼级系统设置→⾼级→环境变量→系统变量,在classpath的值最后⾯加上对应包的路径,即刚放在lib⽬录的路径,再重新编译即可。如下:
简单的反编译class⽂件并重新编译的⽅法
在没有.java源码的情况下,如果想修改⼀个.class⽂件.可以通过以下步骤实现: 修改前的class⽂件: ⼀.反编译.class⽂件成.java⽂件. 1.可以使⽤Java Decompiler ...
删除moduleCache下⽂件解决预编译头⽂件相关的编译错误
之前有在代码全部正确的情况下,遇到过下⾯的编译错误: fatal error: file '.....h' has been modified since the precompiled header ...
编译Python⽂件
编译Python⽂件 ⼀.编译Python⽂件 为了提⾼加载模块的速度,强调强调强调:提⾼的是加载速度⽽绝⾮运⾏速度.python解释器会在
__pycache__⽬录中下缓存每个模块编译后的版本,格式 ...jquery在项目里是干啥的
通过预编译头⽂件来提⾼C++ Builder的编译速度
C++ Builder是最快的C++编译器之⼀,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受 ...
预编译头⽂件pch
1. 预编译头⽂件 作⽤:提⾼编译效率.预编译头⽂件(扩展名为.PCH),是为了提⾼编译效率⽽使⽤的⼀种⽅法,把⼀个⼯程中较稳定的代码预先编译好放在⼀个⽂件(.PCH)⾥.避免每次编译 ...
c++中 预编译头⽂件PCH
反编译APK⽂件
有时源代码丢失了,这时如果有apk⽂件的话,是可以对apk⽂件反编译得到源⽂件的,本⽂介绍⼀下简单的反编译apk⽂件的过程. 1.⼯具 反编译apk需要的⼯具有两个:apk2java和apktool, ...
MyEclipse反编译Class⽂件
对于需要查看Java Class⽂件源码的筒⼦们来说,必须在项⽬中导⼊Java源码才能查看Class⽂件的具体实现,这不仅⼗分的⿇烦,因为有时我们并不可以获得Class⽂件对应的Java源码.今天就给 ...
随机推荐
linkedin开源的kafka-monitor安装⽂档
linkedin开源的kafka-monitor安装⽂档 linkedin 开源的kafka-monitor的安装使⽤可以参考官⽅的readme:流程介绍的已经⽐较清楚,但是还是有⼀些地⽅需要修正.让 ...
UITextView 显⽰不全的问题
//设置UITextView的内边距 tInset = UIEdgeInsetsMake(0, 0, 20, 0);
单调队列优化DP,多重背包
[JAVA] java仿windows 字体设置选项卡
想⽤java做⼀个像windows⾥⼀样的txt编辑软件,涉及到字体设置选项卡,在⽹上了很久都没到,就⽣⽓啦⾃⼰写⼀个,现在贴这⾥分享⼀下,下次再遇到这样的问题就不⽤⾃⼰亲⾃打代码啦! packa ...
php 配置正确的时间
关于php时区时间错误问题 date 当前时间 时差 当地 本地date_default_timezone_set 之前有⼀个遗留问题,就是echo date("y-m-d
h:i:s&qu ...
php ++a和a++
<?php $a=$b=5;$a+$b=$a++-++$b;echo $b;?> 输出-1
jquery⼯具
SQL AlawaysOn 之⼆:添加组织和域⽤户
1.在管理⼯具打开Active Directory ⽤户和计算机
2.在域控制器名称下⾯右键 选择 新建--组织单位,
3.输⼊组织名定,点确定
4.在组织右键--新建--⽤户
5.输⼊⽤户信息,点 ...
【PAT_Basic⽇记】1002. 写出这个数
#include #include #include int main() { void print ...
Android持续集成之Jenkins 部署
Android持续集成之Jenkins 部署 [TOC] 0x00安装 准备⼯作如下: Tomcat8.5下载地址 Jenkins下载链接 1 将下载的jenkins.war包放⾄tomcat下的we ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论