[英]How to solve InaccessibleObjectException ("Unable to make {member} accessible: module {A} does not 'opens {package}' to {B}") on Java 9?
[英]How to make an internal Java package accessible in Eclipse?
我在Eclipse中使用Java 11(或Java 10)打開了一個遺留Java(8)項目。 Eclipse現在正在抱怨無法訪問的軟件包。 例如com.apple.laf.AquaComboBoxUI
。
從命令行編譯時,我可以通過向javac
添加參數來顯式訪問這些包:
--add-exports java.desktop/com.apple.laf=ALL-UNNAMED
有沒有辦法在Eclipse IDE中執行相同的操作? 我試圖在JDK庫上添加一個可訪問的規則。 但這似乎沒有效果。 有任何想法嗎?
是的,我知道,我們應該將項目遷移到僅使用官方API。 但那是漫長的道路......
我正在回答我自己的問題,因為我找到了解決方案。
您需要設置問題嚴重性。 這屬於Java Compiler -> Errors/Warnings
下的forbidden reference (access rules)
。
如前所述,您可以使用以下步驟將在命令行中使用javac傳遞的參數添加到Eclipse:
單擊Run->Run Configurations
。
在Main tab
下顯示的窗口中Browse the project
要為其傳遞參數Browse the project
和Main class
。
Arguments
選項卡。 Program arguments:
的文本框中,鍵入${string_prompt}
Apply and Close
。 現在,當您運行Java應用程序時,將出現一個提示。 您可以在此處添加用空格分隔的所有參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.