[英]Why is NetBeans running my program on OS X, but not building it into a JAR?
tl; dr
我缺少什么依賴關系,該依賴關系允許NetBeans在內部很好地運行OS X集成程序,但無法清理並將其構建為JAR?
我正在嘗試制作一個集成到OS X中的Java程序,但我希望也將其發布到Windows和Linux上。 為此,我使用了com.apple.eawt
包的實用程序類。
到目前為止,一切都很好。 我已經將菜單欄集成到OS X中,有了“首選項處理程序”和“關於處理程序”,以及所有這些有趣的東西,並且運行得很好……當我單擊“在NetBeans中運行”時。 然而! 當我點擊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修復程序。 我得到了相同的結果,所以這沒有用。
NetBeans具有組織嚴密的運行功能。 如果我做對了-此函數在NetBeans進程(及其類路徑)中編譯並運行您的應用程序。 要通過“ build”命令解決編譯問題,應確保您的build-agent具有所有必需的依賴項:
PS包com.apple.eawt是Apple唯一的包。 如果希望在其他平台上啟動應用程序,則應使用簡單的AWT(而不是Apple EAWT)或其他常見的UI框架(例如Swing)。
我當前的解決方法是清理並運行程序( 而不是構建程序),然后將.class
文件放入具有正確格式的META_INF
文件夾和manifest.MF
文件的.zip
文件夾中。 然后,我將.zip
擴展名重命名為.jar
,並使用這個黑在一起的jarfile!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.