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: classname
is 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.class
is 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