मैं जावा 9 के खिलाफ an open-source project बनाने की कोशिश कर रहा हूं। कुछ फाइलें हैं जिन्हें मुझे प्रतिबिंब का उपयोग करके एक्सेस करने की आवश्यकता है लेकिन मैं नहीं कर सकता क्योंकि पैकेज उनके मॉड्यूल द्वारा निर्यात नहीं किए जाते हैं। मैं --add-exports
तर्कों का उपयोग करके अज्ञात मॉड्यूल में संकुल निर्यात करता हूं।जावा 9: अज्ञात मॉड्यूल में पैकेज निर्यात करना
मैं वातावरण चर _JAVA_OPTIONS
के लिए निम्न तर्क जोड़ लिया है:
-Dsun.reflect.debugModuleAccessChecks=true
--add-exports=javafx.graphics/com.sun.javafx.scene.traversal=ALL-UNNAMED
--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED
मैं नवीनतम JDK 9 निर्माण का उपयोग कर रहा (आज तक): जब मैं कोशिश
C:\controlsfx>java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+175)
Java HotSpot(TM) 64-Bit Server VM (build 9+175, mixed mode)
यहाँ उत्पादन होता है प्रोजेक्ट बनाने के लिए:
C:\controlsfx>.\gradlew :controlsfx:build
Picked up _JAVA_OPTIONS: -Dsun.reflect.debugModuleAccessChecks=true --add-exports=javafx.graphics/com.sun.javafx.scene.traversal=ALL-UNNAMED --add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
:controlsfx:compileJava
C:\controlsfx\controlsfx\src\main\java\impl\org\controlsfx\behavior\SnapshotViewBehavior.java:60: error: package com.sun.javafx.scene.control.behavior is not visible
import com.sun.javafx.scene.control.behavior.BehaviorBase;
^
(package com.sun.javafx.scene.control.behavior is declared in module javafx.controls, which does not export it to the unnamed module)
C:\controlsfx\src\main\java\impl\org\controlsfx\ReflectionUtils.java:3: error: package com.sun.javafx.scene.traversal is not visible
import com.sun.javafx.scene.traversal.ParentTraversalEngine;
^
(package com.sun.javafx.scene.traversal is declared in module javafx.graphics, which does not export it to the unnamed module)
संकलन अभी भी विफल रहता है, जो मुझे जीतता है मैं क्या गलत कर रहा हूँ।
इसके बारे में दिए गए लिंक यहाँ reproduced प्रासंगिक हिस्सा है करने के लिए अच्छा होगा - बाहरी साइटों ऑफ़लाइन जाने या अधिक उनकी संरचना को बदल सकते हैं समय –
मुझे नहीं लगता कि ग्रैडल में इस जवाब का मुख्य भाग सही तरीके से कैसे सोचें - इसे फॉलो-अप के रूप में जोड़ा गया था। प्रासंगिक जानकारी यह है कि 'JAVA_OPTIONS' चाल नहीं करता है और तर्क सही जगहों पर लागू होने की आवश्यकता है। लेकिन शायद मैं गलत हूँ। अगर आपकी टिप्पणी कुछ अपवर्तित हो जाती है, तो मैं विवरण शामिल कर सकता हूं। – Nicolai