我试图使用Retroguard来混淆SWT代码,但是在混淆之后,我无法启动它创建的jar。请指教。感谢。
C:\Documents and Settings\zzz\My Documents>java -jar retroguard.jar swt-orig.j
ar
C:\Documents and Settings\zzz\My Documents>java -jar out.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.eclipse.swt.inter
nal.win32.OS.GetVersionExW(Lorg/eclipse/swt/internal/win32/ar;)Z
at org.eclipse.swt.internal.win32.OS.GetVersionExW(Native Method)
at org.eclipse.swt.internal.win32.OS.<clinit>(Unknown Source)
at i.z.<clinit>(Unknown Source)
at Main.main(Unknown Source)
答案 0 :(得分:0)
看起来像包含SWT本机方法的DLL的问题。它被打包成 swt-orig.jar 吗?也许Retroguard删除或改变了它?
您可能还希望在我的文章 Protect Your Java Code - Through Obfuscators And Beyond 中了解混淆的局限性以及保护代码的其他方法。