Frage

Ich habe eine ausführbare jar client.jar die jndi.properties Datei erfordert. Da die jndi Eigenschaften ist nicht Teil der client.jar und java -jar Ignoriert die -classpath Argument,

Wie kann ich das Glas ausführen und lassen Sie es wissen, wo die jndi.properties ist?

Danke

// bearbeiten, Fehlermeldung

java -jar Client2.jar 
Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.don.Client.main(Client.java:10)
War es hilfreich?

Lösung

Wir brauchen mehr Informationen darüber, wie die Anwendung erzählt wird die Position der JNDI-Eigenschaften-Datei.

Wird erwartet, dass es die Eigenschaften Speicherort der Datei als Befehlszeilenargument? Wenn ja, sollten Sie den Befehl aufrufen wie folgt:

java -jar <jarfile> <arguments>

, wo der <arguments> enthält die entsprechende Option, um die JNDI Eigenschaften Datei geben.

Wird erwartet, dass es die JNDI-Eigenschaften Datei als Systemeigenschaft? Wenn ja, sollten Sie den Befehl aufrufen wie folgt:

java -jar <jarfile> -D<someproperty>=<location>

, wo der <someproperty> der Name der betreffenden Eigenschaft ist.

Wird erwartet, dass es Eigenschaftendatei auf dem Classpath zu finden? Wenn ja, sollten Sie den Befehl etwas entlang der folgenden Zeilen aufrufen:

java -cp <jarfile>:<directory> <main-class>

wo <main-class> sind die Hauptklasse Namen aus dem JAR-Datei Manifest und <directory> enthält die JNDI Eigenschaften Datei mit dem Namen von der Anwendung erwartet.

Wenn die Anwendung ordnungsgemäß dokumentiert ist, ist der bevorzugte Weg, um die JNDI Eigenschaftsdatei der Einrichtung wird in der Installation und / oder Verwendung der Dokumentation sein.

Andere Tipps

Es soll möglich sein, manuell in die Hauptklasse beziehen und beinhalten alle die JAR-Dateien auf dem Classpath, anstatt die -jar Flagge verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top