मेरे पास एक ऐसा एप्लिकेशन है जो कमांड प्रॉम्प्ट से इसे चलाते समय ठीक चलता है:
java -jar --illegal-access=permit target/Something.jar
हालाँकि, मेरे स्प्रिंग बूट मावेन प्लगइन को मेरे pom.xml
में कॉन्फ़िगर करने से मुझे वही त्रुटि मिलती है जैसे कि मैंने अपना cmd illegal-access=permit
भाग के बिना चलाया, मुझे बता रहा है कि इसे अनदेखा किया जा रहा है:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.something.PreMain</mainClass>
<jvmArguments>
--illegal-access=permit
</jvmArguments>
</configuration>
</plugin>
मैं क्या गलत कर रहा हूं? यह ऐप जावा १४ में पूरी तरह से काम करता है और मैं जावा १६ में अपग्रेड करने की प्रक्रिया में हूं। सब कुछ अभी भी पूरी तरह से काम करता है सिवाय इंटेलीजे के लापता illegal-access=permit
JVM तर्क के कारण इसे डीबग मोड में लॉन्च करने में सक्षम नहीं है।
2 जवाब
यदि आप IntelliJ में एप्लिकेशन चलाने का प्रयास कर रहे हैं, तो आपको मावेन में कुछ भी पास करने की आवश्यकता नहीं है। IntelliJ में, अपने ऐप के लिए रन कॉन्फ़िगरेशन खोलें और Environment->VM विकल्प जोड़ें --illegal-access=permit. संलग्न छवि देखें, मुख्य वर्ग आपकी @SpringBootApplication
कक्षा का पूर्णतः योग्य स्थान होगा, उदा. com.something.MySpringBootApplication
जब आप IntelliJ में डिबग मोड में अपना ऐप प्रारंभ करते हैं, तो आपको कुछ इस तरह दिखाई देगा
/Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52737,suspend=y,server=n --illegal-access=permit -XX:TieredStopAtLevel=1...
, ध्यान दें कि तर्क आपके ऐप को दिया जा रहा है।
आप इसके बजाय इसे गुणों में डालने का प्रयास करना चाह सकते हैं। ये कोशिश करें:
<properties>
<jvm.options>--illegal-access=permit</jvm.options>
</properties>
फिर इसे प्लगइन में इस प्रकार उपयोग करें:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.something.PreMain</mainClass>
<compilerArgs>
<arg>${jvm.options}</arg>
</compilerArgs>
</configuration>
ध्यान दें: अगर आप अचूक के लिए अवैध-पहुंच पैरामीटर का उपयोग कर रहे हैं, तो args के बजाय, आपको argline का उपयोग करना होगा।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।