2017-04-21 1 views
0

Hier ist meine Frage.Wie weglassen Sie das Paket beim Ausführen der Java-Klasse (mit Jar)

#!/bin/bash 
JAVA_HOME=/usr/local/jdk1.8.0_121 
CLASSPATH=test.jar 

$JAVA_HOME/bin/java -cp $CLASSPATH com.test.job.ExampleJob 

# test.jar 
# ㄴ com 
#  ㄴ test 
#   ㄴ job 
#    ExampleJob.class 

Dieses Skript funktioniert einwandfrei. aber ich möchte Paket wie folgt weglassen:

$JAVA_HOME/bin/java -cp $CLASSPATH ExampleJob 
# error 

Wie kann ich?

+0

siehe diese Antwort http://stackoverflow.com/a/11754570/2310289 –

Antwort

1

Die Manifest.mf-Datei hätte die Hauptklasseninformationen - z. MyJar.jar \ META-INF \ MANIFEST.MF

Manifest-Version: 1.0 
Main-Class: com.mycomp.myproj.dir1.MainClass1 
Class-Path: MyJar.jar 
MyJar.jar\META-INF\MANIFEST.MF 

Dann führen Sie es nur mit java -jar MyJar.jar

Ebenso für Ihr Projekt Sie Ihre Hauptklasse konfiguriert im Manifest.mf haben können

+0

danke für die Antwort. aber ich möchte ohne MENIFEST.MF-Datei. Gibt es eine andere Lösung? – noritersand

+0

@noritersand Ja. Fügen Sie die Klasse in das Standardpaket ein, d. H. Entfernen Sie die Paketanweisung am Anfang der Quelldatei und platzieren Sie die .class-Datei direkt in die JAR-Datei. – Andreas

Verwandte Themen