Een JAR-bestand uitvoeren

Ik heb een JAR-bestand als volgt gemaakt:

jar cf Predit.jar *.*

Ik heb dit JAR-bestand uitgevoerd door erop te dubbelklikken (het werkte niet). Dus ik heb het als volgt vanaf de DOS-prompt uitgevoerd:

java -jar Predit.jar

Het leverde de uitzonderingen “Kan hoofdklasse niet laden” op. Dus ik heb dit JAR-bestand uitgepakt:

jar -xf Predit.jar

en ik heb het klassenbestand uitgevoerd:

java Predit

Het werkte goed. Ik weet niet waarom het JAR-bestand niet werkte. Vertel me de stappen om het JAR-bestand uit te voeren


Antwoord 1, autoriteit 100%

Je moet een hoofdklasse specificeren in het jar-bestandsmanifest.

Oracle’s zelfstudiebevat een volledige demonstratie, maar hier is nog een een vanaf nul. Je hebt twee bestanden nodig:

Test.java:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hello world");
    }
}

manifest.mf:

Manifest-version: 1.0
Main-Class: Test

Houd er rekening mee dat het tekstbestand moet eindigen met een nieuwe regel of een regelterugloop.
De laatste regel wordt niet goed geparseerd als deze niet eindigt met a
nieuwe regel of regelterugloop.

Voer vervolgens uit:

javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar

Uitvoer:

Hello world

2, Autoriteit 28%

java -classpath Predit.jar your.package.name.MainClass

3, Autoriteit 18%

Voordat u de JAR-controle wilt uitvoeren Main-Class: classnameis beschikbaar of niet in Manifest.mf -bestand. Manifest.mf is aanwezig in pot.

java -jar filename.jar

4, Autoriteit 7%

Een zeer eenvoudige aanpak om te maken .class, .jar-bestand.

het jar-bestand uitvoeren. Geen zorgen te veel zorgen over manifest bestand. Maak het eenvoudig en elgant.

Java Sample Hallo World Program

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Compileer het klassenbestand

javac HelloWorld.java

Het JAR-bestand maken

jar cvfe HelloWorld.jar HelloWorld HelloWorld.class

of

jar cvfe HelloWorld.jar HelloWorld *.class

Het jar-bestand uitvoeren

java -jar HelloWorld.jar

Of

java -cp HelloWorld.jar HelloWorld

Antwoord 5, autoriteit 5%

Als u geen manifest wilt maken om alleen het jar-bestand uit te voeren, kunt u rechtstreeks vanaf de opdrachtregel naar de hoofdklasse verwijzen wanneer u het jar-bestand uitvoert.

java -jar Predit.jar -classpath your.package.name.Test

Dit stelt de hoofdklasse in die in het jar-bestand moet worden uitgevoerd.


Antwoord 6, autoriteit 2%

Java

class Hello{
   public static void main(String [] args){
    System.out.println("Hello Shahid");
   }
}

manifest.mf

Manifest-version: 1.0
Main-Class: Hello

Op opdrachtregel:

$ jar cfm HelloMss.jar  manifest.mf Hello.class 
$ java -jar HelloMss.jar

Uitvoer:

Hello Shahid

Antwoord 7

Als je niet met die details te maken wilt hebben, kun je ook de export jar-assistenten van Eclipse of NetBeans gebruiken.


Antwoord 8

Eclipse uitvoerbaar JAR-bestand

Maak een Java-project – RunnableJAR

  • Als er jar-bestandenworden gebruikt, voeg ze dan toe aan de projectopbouw pad.
  • Selecteer de klasse met main() tijdens het maken van een Runnable Jar-bestand.

Hoofdklasse

public class RunnableMainClass {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Name : "+args[0]);
        System.out.println(" ID  : "+args[1]);
    }
}

Voer Jar uitbestand met behulp van een java-programma (cmd) door argumenten op te geven en de uitvoer en weergave in de eclipse-console te krijgen.

public class RunJar { 
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        String jarfile = "D:\\JarLocation\\myRunnable.jar";
        String name = "Yash";
        String id = "777";
        try { // jarname arguments has to be saperated by spaces
            Process process = Runtime.getRuntime().exec("cmd.exe start /C java -jar "+jarfile+" "+name+" "+id);
                    //.exec("cmd.exe /C start dir java -jar "+jarfile+" "+name+" "+id+" dir");
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
            String line = null;
            while ((line = br.readLine()) != null){
                sb.append(line).append("\n");
            }
            System.out.println("Console OUTPUT : \n"+sb.toString());
            process.destroy();
        }catch (Exception e){
            System.err.println(e.getMessage());
        }
   }
}

in Eclipse om short cuts :

Help ► Help Inhoud ► Java Development Gebruikershandleiding ► Referenties ► Menu’s en acties


9

Ik heb deze mapstructuur:

D: \ javaprojects \ olivepressApp \ com \ lynda \ olivepress \ main.class
D: \ javaprojects \ OlivepressApp \ com \ lynda \ olivepress \ Press \ olivePress.class
D: \ javaprojects \ OlivepressApp \ com \ lynda \ olivepress \ olijven \ kalamata.class
D: \ javaprojects \ olivepressApp \ com \ lynda \ olivepress \ olijven \ Ligurian.class
D: \ Javaprojects \ OlivepressApp \ com \ Lynda \ olivePress \ olijven \ olive.class

Main.classis in pakket com.lynda.olivepress

Er zijn twee andere pakketten:

com.lynda.olivePress.Press

com.lynda.olivePress.olive

1) Maak een bestand met de naam "Manifest.txt"met twee regels, eerst met hoofdklasse en een tweede lege regel.

Main-Class: com.lynda.olivepress.Main

D: \ Javaprojects \ OlivepressApp \ Manifest.txt

2) Maak jar met manifest en hoofdklasse toegangspunt

D: \ Javaprojects \ OlivepressApp & GT; jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*

3) Run JAR

java -jar OlivePressApp.jar

OPMERKING: com/lynda/olivepress/*Middelen, inclusief de andere twee hierboven genoemde pakketten, vóór punt 1)


10

Om jar uit te voeren, moet je eerst

. maken

uitvoerbare pot

dan

java -jar xyz.jar

opdracht zal werken

Other episodes