मेरी कक्षा:

package com.your.company.cli;

import com.github.domain.cli.Cli;
import com.your.company.utils.MySuperClass;

public class Hello {
    public static void main(String[] args) throws TechnicalException {
        new Cli().runcli(MySuperClass.class, args);
    }
}

मेरे ग्रहण पर ठीक है:

enter image description here

मुझे अपनी कक्षा को कमांड लाइन द्वारा चलाने की आवश्यकता है। (मेवेन द्वारा संकलित करने के बाद (एमवीएन क्लीन इंस्टॉल))

java -cp .... ???? com.your.company.cli.Hello ... ???

संपादित करें 1:

मैं कोशिश करता हूँ java -jar myproject.jar

Aucun एट्रिब्यूट मेनिफेस्ट प्रिंसिपल dans myproject.jar

मैं कोशिश करता हूँ java -cp myproject.jar com.your.company.cli.Hello

असंभव डी ट्रौवर ला क्लासी प्रिंसिपल com.your.company.cli.Hello

संपादित करें 2:

मैं maven-jar-plugin जोड़ने का प्रयास करता हूं लेकिन मेरा परिणाम एक मेवेन जार है (वसा जार नहीं)। मैं जार फ़ाइल के बिना कमांड लाइन के साथ एक समाधान की तलाश में हूं (ग्रहण के समान व्यवहार को ठीक करें)।

0
Stéphane GRILLON 18 अप्रैल 2018, 00:37

2 जवाब

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

मैं अपनी परियोजना को संशोधित किए बिना समाधान ढूंढता हूं:

mvn clean install
mvn exec:java -Dexec.mainClass=com.your.company.cli.Hello
1
sgrillon 18 अप्रैल 2018, 12:09
  • आप java -jar /target/myproject.jar के साथ बनाई गई जार फ़ाइल लॉन्च कर सकते हैं।

  • आप java -cp ... या javac का उपयोग नहीं कर सकते क्योंकि आपको संकलित करने के लिए सभी जावा फ़ाइलों को एक ही फ़ोल्डर में रखना होगा।

  • त्रुटि के लिए aucun attribut manifest principal dans myproject.jar उत्पन्न होता है क्योंकि जावा मुख्य वर्ग नहीं ढूंढ सका मैं आपको इसे अपनी pom.xml फ़ाइल में जोड़ने की सलाह देता हूं

`

<build>
  <plugins>
    <plugin>
      <!-- Build an executable JAR -->
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.0.2</version>
      <configuration>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <classpathPrefix>lib/</classpathPrefix>
            <mainClass>com.mypackage.MyClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

और अपने मुख्य वर्ग का पूरा नाम बताएं

[अपडेट करें]

  • यदि आपके पास कई निर्भरताएं हैं और आप उन सभी को अपने अंतिम जार में शामिल करना चाहते हैं तो आप maven-assembly-plugin इस तरह उपयोग कर सकते हैं:

    <कोड> <प्लगइन> org.apache.maven.plugins मावेन-असेंबली-प्लगइन <निष्पादन> <निष्पादन> <चरण>पैकेज <लक्ष्य> <लक्ष्य>एकल <कॉन्फ़िगरेशन> <संग्रह> <प्रकट> ${mainClass} जार-साथ-निर्भरता

आपको अपने मुख्य वर्ग के पूरे नाम से प्रतिस्थापित ${mainClass} करना होगा

0
Elarbi Mohamed Aymen 18 अप्रैल 2018, 12:10