如何修改jar包的class文件。或者覆盖也可。在线等。。。。。

snowjlz 2013-04-19 04:40:56
我现在在搞GMF。需要修改plugin里面jar里的文件夹的源码。可是却不知道该怎么弄?覆盖不了。求助。
...全文
1847 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zting125240 2013-04-23
  • 打赏
  • 举报
回复
下载一个反编译工具,然后重写这一个class类对应的JAVA类,然后生成.class 复盖以前的class文件
snowjlz 2013-04-23
  • 打赏
  • 举报
回复
snowjlz 2013-04-23
  • 打赏
  • 举报
回复
自己解决吧。 问题描述:如何修改plugin里面jar的源码。小问题包括debug是跑入了class文件中 1,将原有的xxxxxx.jar文件和xxxxx.source.jar进行解压。 2,用xxxxxxx.source.jar里面的源码替换xxxxxxxxxxx.jar里的class文件。 3,新建普通的java项目。将替换好的文件copy到对应目录。 4,修改完成之后,打开plugin.xml的overview视图进行export进行倒出。 5,在导出的过程中。请应用已经有的MANIFEST.MF文件。而不是使用标准的MANIFEST.MF文件。 重要说明:在整个过程中。不要对原来的文件进行任何修改。除了java替换class文件。 问题描述:如何更方便的调试修改plugin里面jar的源码。 解决方法:修改MANIFEST.MF Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: com.snow.diagram; singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-ClassPath: . Bundle-Activator: my.diagram.part.MyDiagramEditorPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin Export-Package: my.diagram.edit.parts, my.diagram.part, my.diagram.providers Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources, org.eclipse.core.expressions, org.eclipse.jface, org.eclipse.ui.ide, org.eclipse.ui.views, org.eclipse.ui.navigator, org.eclipse.ui.navigator.resources, org.eclipse.emf.ecore.xmi, org.eclipse.emf.edit.ui, org.eclipse.gmf.runtime.emf.core, org.eclipse.gmf.runtime.emf.commands.core, org.eclipse.gmf.runtime.emf.ui.properties, org.eclipse.gmf.runtime.diagram.ui, org.eclipse.gmf.runtime.diagram.ui.properties, org.eclipse.gmf.runtime.diagram.ui.providers, org.eclipse.gmf.runtime.diagram.ui.providers.ide, org.eclipse.gmf.runtime.diagram.ui.render, org.eclipse.gmf.runtime.diagram.ui.resources.editor, org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide, org.eclipse.gmf.tooling.runtime;visibility:=reexport, org.eclipse.draw2d;visibility:=reexport, org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport, com.snow;visibility:=reexport, com.snow.edit;visibility:=reexport, org.eclipse.emf.ecore;visibility:=reexport, org.eclipse.gef;visibility:=reexport Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 1,删除Require-Bundle中原有的插件依赖,例如: org.eclipse.emf.core, 2,添加自己修改过的插件org.eclipse.emf.ecore;visibility:=reexport, 3,当开发完毕。还原MANIFEST.MF文件。将修改的插件进行打包并替换原有plugin的插件。
snowjlz 2013-04-22
  • 打赏
  • 举报
回复
自己顶起。
snowjlz 2013-04-19
  • 打赏
  • 举报
回复
自己顶起。
  • 打赏
  • 举报
回复
要看这个类设计得是否是可扩展的,否则就别指望了!
snowjlz 2013-04-19
  • 打赏
  • 举报
回复
引用 2 楼 forgetsam 的回复:
1 反编译,修改,编译,重新打包 2 自己写同包同名的类,设定参数,让容器优先加载自己的。
如何设定参数,让容器先加载自己想加载的类呢?
forgetsam 2013-04-19
  • 打赏
  • 举报
回复
1 反编译,修改,编译,重新打包 2 自己写同包同名的类,设定参数,让容器优先加载自己的。
fei1710 2013-04-19
  • 打赏
  • 举报
回复
源码是.java还是.class文件啊?GMF是什么东东

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧