gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:54 24 4
gpt4 key购买 nike

tl;dr

我缺少什么依赖项允许 NetBeans 在内部很好地运行 OS X 集成程序,但不能清理它并将其构建到 JAR 中?


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

到目前为止,一切都很好。我已经将我的菜单栏集成到 OS X 中,我有首选项处理程序和关于处理程序以及所有有趣的东西,而且它工作得很好......当我在 NetBeans 中单击 Run 时。然而!当我点击 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?


尝试修复

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

最佳答案

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

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

enter image description here

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

关于java - 为什么 NetBeans 在 OS X 上运行我的程序,而不是将其构建到 JAR 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com