我已经用Java编写的两个MAC OSX和Windows的应用程序,但我已经开发在Windows上。 因此,我使用java.lang.reflect.*
为了贯彻落实“关于”和“退出”的处理程序没有收到异常。
我出口它作为一个可执行的JAR,一切工作正常这两个操作系统上。 不过,我想进行模糊处理的应用和我使用ProGaurd这样做。 我指定了必要的库为它工作在Windows(rt.jar中,jsse.jar,jce.jar),它仍然无法在Windows上工作得很好,但是ProGaurd告诉我,在两个悬而未决的动态引用类或接口和混淆应用程序不再正常工作在Mac(关于在并退出处理程序不工作)。
我在其他地方见过的ui.jar
是必需的,所以我复制它从我的Mac进行的跨和ProGaurd规定,但似乎没有解决问题! 任何解决方案赞赏然后...
提前致谢
UPDATE
现在我已经使用AppleJavaExtensions为了实现使用处理器com.apple.eawt.Application
,而不是反映。 不过,我仍然得到完全相同的问题! 下面是我目前使用的代码:
package ap;
import com.apple.eawt.AboutHandler;
import com.apple.eawt.AppEvent;
import com.apple.eawt.AppEvent.QuitEvent;
import com.apple.eawt.Application;
import com.apple.eawt.QuitHandler;
import com.apple.eawt.QuitResponse;
import com.gui.Tabs;
public class xa implements AboutHandler, QuitHandler {
// Constructor to register/install the necessary handler's
public xa(){
Application.getApplication().setAboutHandler(this);
Application.getApplication().setQuitHandler(this);
}
// Implemented method to catch the About menu item
@Override
public void handleAbout(AppEvent.AboutEvent e) {
Tabs.switchAbout();
}
// Implemented method to catch the Quit menu item
@Override
public void handleQuitRequestWith(QuitEvent arg0, QuitResponse arg1) {
Tabs.quit();
}
}
而我使用ProGuard的GUI混淆我的应用程序。 在Obsfucation底部“标签”我已经添加了类ap.xa
,并规定它扩展/实现AboutHandler, QuitHandler
。 我还添加了类com.gui.Tabs
,但问题仍然存在。