用JAD反编译修改NSG2以方便自己使用 转载

用JAD反编译修改NSG2以方便自己使用 转载
2009年03月23日 星期一 08:59

NSG是一个非常不错的可视化的ns2场景制作软件, 参见:
http://wushoupong.googlepages.com/nsg

但是NSG2生成的tcl比较死板,是一个固定的框框,在实际ns2的扩展仿真时,每次生成了之后都要根据自己的要求再改半天…为了减少工作量,有2种方法:

1). 把要添加修改的部分临时存到onenote里,以后每次生成tcl文件后,用ctrl-c&ctrl-v大法弄过去.如果要改的很琐碎,分了很多块,就麻烦了…

2). 直接让nsg2生成的tcl符合自己的需求,能够自动改成或者加入自己需要的部分tcl代码!也就是说,通过反编译nsg2来制作一个为自己定制的nsg2… ; ) 请参考下文:

 

1. 先把nsg2.jar解压缩,得到META-INF和nsg两个目录,放到一个临时的class目录里

jar -xf nsg2.jar

2. 下载JAD最新版本,然后用JAD反编译相应的.class为java,进入class目录里,输入:

jad -o -r -sjava -d src nsg/**/*.class

这样就得到一个src目录包括了所有的java源文件.很多噢..>_<

特别是出现很多$3.java这样的文件,貌似是用了很多匿名内部类

4. java源文件中,只有几个是比较关键的,是我们所关心的:

ParameterDialog.java 是保存那个parameter的对话框里的内容,看着对应好的属性大改而特改就好了,各种参数.

TCLManager.java 是那个生成tcl文件的关键地方,里面嵌好了整个tcl模板构架,照着自己的需求改就是了.非常easy~!改好了之后就能按照自己的需求输出指定格式的tcl了~.

SceneManager.java 是关于场景内容数据的,比如是否显示range,是否显示连线等等.

SceneVirtualizer.java 是场景表现的,画range,画link,画各种东西的…

5. 改好了之后,保存,重新编译.到src目录里,也就是nsg的上一级目录里输入

javac nsg*.java

会出错误,因为可能是作者的编译器,jad反编译,再编译,会有兼容问题吧.对java不是特会.但是尽管出了错误,也生成了相应的.class了.

6. 把重新编译好的相关的.class文件拷贝覆盖到class的nsg目录里,覆盖原来的.

7. 最后在到class目录里,把整体从新打jar包:

jar cvfm nsg2.jar META-INFMANIFEST.MF nsg

这样就ok了.

注: 作者没有公开自己的代码为opensource肯定是有自己的想法和原因的,首先要非常感激nsg2的作者.但是如果能够公开代码,方便大家添枝加叶出谋划策完善功能,肯定是会更好的促进nsg的制作的.ns2比qualnet的最大不足就是没有一个可视化的场景制作界面哎.恩.闪了.继续弄仿真去咯…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值