मेरे पास एक ऐसा एप्लिकेशन है जो कमांड प्रॉम्प्ट से इसे चलाते समय ठीक चलता है:

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 तर्क के कारण इसे डीबग मोड में लॉन्च करने में सक्षम नहीं है।

3
Martin 27 जुलाई 2021, 16:47

2 जवाब

सबसे बढ़िया उत्तर

यदि आप IntelliJ में एप्लिकेशन चलाने का प्रयास कर रहे हैं, तो आपको मावेन में कुछ भी पास करने की आवश्यकता नहीं है। IntelliJ में, अपने ऐप के लिए रन कॉन्फ़िगरेशन खोलें और Environment->VM विकल्प जोड़ें --illegal-access=permit. संलग्न छवि देखें, मुख्य वर्ग आपकी @SpringBootApplication कक्षा का पूर्णतः योग्य स्थान होगा, उदा. com.something.MySpringBootApplication

enter image description here

जब आप 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..., ध्यान दें कि तर्क आपके ऐप को दिया जा रहा है।

1
lane.maxwell 3 अगस्त 2021, 00:23

आप इसके बजाय इसे गुणों में डालने का प्रयास करना चाह सकते हैं। ये कोशिश करें:

<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 का उपयोग करना होगा।

0
digvijaykatoch 9 अगस्त 2021, 12:26