安装了java反编译工具之后,有些jar文件中的class文件无法打开,只能打开jdk中的class文件,比如string,integer之类的,查看details错误信息之后,发现如下错误:
java.lang.UnsatisfiedLinkError: D:\myeclipse\configuration\org.eclipse.osgi\bundles\734\1\.cp\lib\linux\x86\libjd-eclipse.so: Can't load this .dll (machine code=0x101) on a IA 32-bit platform
纠结了好久,网上也找不到比较好的答案,最后在一个英文网上找到了,就记录在这里,给遇到同样问题的同学一个帮助.参考网站是:http://java.decompiler.free.fr/?q=node/569
原文如下:
This is a BUG on OS detection. Quick fix: get the file "jd-eclipse.dll" from jd.ide.eclipse.win32.x86_0.1.3.jar if you have win32 or from "jd.ide.eclipse.win32.x86_64_0.1.3.jar" if you have win64, rename it to "libjd-eclipse.so" and move it to the path where Eclipse indicate the problem with "libjd-eclipse.so", in my case was "eclipse3.5.1\configuration\org.eclipse.osgi\bundles\620\1\.cp\lib\linux\x86\libjd-eclipse.so"
大致的意思是:
在jd.ide.eclipse.win32.x86_0.1.3.jar或者jd.ide.eclipse.win32.x86_64_0.1.3.jar这个jar文件中的\lib\win32\x86目录下面,找到jd-eclipse.dll文件,然后复制到configuration\org.eclipse.osgi\bundles\620\1\.cp\lib\linux\x86\这个目录中,也就是报错的目录,跟libjd-eclipse.so同目录,
最后将dll文件重命名为libjd-eclipse.so文件,将原来的文件删除.重启myeclipse就可以了.
亲测可用.