2010-04-19 24 views
0

我试图使用Retroguard混淆SWT代码,但在混淆之后,我无法启动它创建的jar。请指教。谢谢。使用Retroguard混淆swt应用程序的问题

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

看起来像包含SWT本机方法的DLL的问题。是否包装成swt-orig.jar?也许Retroguard删除或改变它?

您也可以阅读关于混淆的限制和关于保护我的文章中的代码的其他方法Protect Your Java Code - Through Obfuscators And Beyond

+0

我认为SWT的dll被打包成jar文件,因为我可以通过使用 java -jar swt-orig.jar – janetsmith 2010-04-22 07:58:17

+0

运行它好吗,你可以检查一下,如果是的话,找出是否是它仍然存在out.jar? – 2010-04-22 08:45:34