मान लीजिए कि मेरे पास कुछ लाइब्रेरी lib.jar
है जिसके लिए मेरे पास स्रोत कोड नहीं है (या यह कुछ गैर-जावा भाषा में लिखा गया है जो अभी तक मॉड्यूल से अनजान है)। lib.jar
में module-info.class
नहीं है और मैं इसे स्वचालित मॉड्यूल के रूप में उपयोग नहीं करना चाहता, इसलिए मैं इसमें module-info.class
इंजेक्ट करना चाहता हूं।जार में मॉड्यूल घोषणा कैसे इंजेक्ट करें?
मैं पहली बार निम्न आदेश के साथ module-info.java
उत्पन्न:
jdeps --generate-module-info . lib.jar
इस ऐसा ही कुछ उत्पन्न मान लीजिए:
module lib {
exports package1;
exports package2;
}
तो मैं यह संकलन करने की कोशिश लेकिन javac
विफल रहता है क्योंकि संकुल package1
और package2
करना अस्तित्व में नहीं है:
> javac module-info.java
module-info.java:4: error: package is empty or does not exist: package1
बेशक, मैं निर्देशिका में package1
और package2
निर्देशिका बना सकता हूं, लेकिन क्या वहां कुछ बेहतर दृष्टिकोण है?
जब मैं इस आदेश का उपयोग करें, मैं अभी भी त्रुटि मिलती है: > javac module-info.java module-info.java:4: त्रुटि: पैकेज खाली है या मौजूद नहीं है : पैकेज 1 कोई विचारधारा क्यों यह मेरे लिए काम नहीं कर सकती है? –
@TiagoSantos क्या पैकेज JAR में मौजूद है? – ZhekaKozlov
हाँ, सबकुछ ठीक लगता है, मैं इसे नलपॉइंटर से ऊपर दिए गए समाधान का उपयोग करके काम करने में कामयाब रहा, मैं मानता हूं कि आपका समाधान अधिक सुरुचिपूर्ण है, केवल समस्या यह है कि मेरे .jars के साथ काम नहीं कर रहा है:/2 अलग-अलग प्रयासों में –