当前位置: 首页 > 面试题库 >

为什么NetBeans在OS X上运行我的程序,而不将其构建到JAR中?

薛望
2023-03-14
问题内容

我缺少什么依赖关系,该依赖关系允许NetBeans在内部很好地运行OS X集成程序,但无法清理并将其构建为
JAR?

我正在尝试制作一个集成到OS X中的Java程序,但我希望也将其发布到Windows和Linux上。为此,我使用了
com.apple.eawt包的实用程序类。

到目前为止,一切都很好。我已经将菜单栏集成到OS X中,有了“首选项处理程序”和“关于处理程序”,以及所有有趣的东西,并且效果很好……当我单击RunNetBeans时。然而!当我
单击时Clean and Build,会出现很多类似这样的错误:

/my/source/path/MenuBarManager.java:3: error: package com.apple.eawt does not exist
import com.apple.eawt.AboutHandler;
/my/source/path/MenuBarManager.java:62: error: cannot find symbol
    private static class MyAboutHandler implements AboutHandler {
                                                   ^
  symbol:   class AboutHandler
  location: class MyMenuBarManager
/my/source/path/MyMenuBarManager.java:68: error: package AppEvent does not exist
        @Override public void handleAbout(AppEvent.AboutEvent ae) {
                                          ^
/my/source/path/MyMenuBarManager.java:67: error: method does not override or implement a method from a supertype <br/>
        @Override public void handleAbout(AppEvent.AboutEvent ae) {
        ^

为什么我可以在IDE中正常运行它,却不能告诉IDE将其编译
为JAR?

尝试修复我尝试通过创建一个全新的NetBeans项目,将所有源文件复制到其中并单击
“清理并生成”来完全重新创建该项目的Ajith John修复方法。我得到了相同的结果,所以这没有用。


问题答案:

即使程序包com.apple.eawt在运行时jar中rt.jar(如果在OS X上),编译器也会在名为的符号文件中查找程序包ct.sym。
该符号文件仅包含标准Java软件包,而不包含Apple扩展名。

一种解决方案是使用javac选项-XDignore.symbol.file,如下所示。但是,-XD选项是非标准的且未记录,

更好的解决方案可能是以不使用非标准Apple扩展的方式重写代码



 类似资料:
  • 我有一个JavaFX应用程序,它调用一些JNI代码,使用预加载程序jar,并使用JDK1.7编译。现在,当我使用JRE7在另一台计算机上运行jar时,通过: 双击jar:它启动,但无法加载包含库的JNI代码,因此被卡住。 有人能告诉我这三种情况有什么不同吗?

  • OS:Windows 10 JDK:jdk1。8.0_65 IDE:Netbeans 8.2 我采取的步骤: 1。我安装了Netbeans,选择了ALL列,这意味着它可以支持Groovy或grails应用程序 2。我还安装了Grails的最新版本,即Grails-3.3.5 3。安装完所有东西后,我打开了Netbeans。 我在NETBEANS 文件中采取的步骤 这里的问题是我无法创建一个新项目。

  • 在src/main/groovy/foo/test2.java中: 分级文件: 我造了一个罐子: 我在这里有版本控制中的测试用例: https://github.com/wu-lee/test-groovy-main

  • 问题内容: 许多使用Shell脚本配置其环境的Java应用程序都使用环境变量来启动Java的正确版本,找到JRE JAR,等等。 在OSX 10.6上,以下路径似乎对此变量有效 其中一些是到实际当前VM的符号链接(在Java Preference窗格中定义)。 但是应该使用哪一个?或者可以使用其中任何一个? 问题答案: 我只是设置JAVA_HOME为该命令的输出,该命令应该为你提供Java首选项中

  • 我在intelliJ中创建了一个Java /JavaFX应用程序。我创建了它作为一个Java的应用程序,后来为JavaFX导入了必要的部件。 我尝试了Izpack、Javapackager、Jpackager、Jpackage和创建胖jar中的各种安装程序/打包程序创建者。我什么都不行。 该应用程序在IntelliJ中运行良好。 为什么它不会在别处运行? 这是我的POM、代码和错误消息。 如果你能

  • 每次运行导出的文件(该文件包含一个以图像为图标的