2017-07-17 6 views
1

Ich führe eine JAR-Datei aus einer anderen JAR-Datei aus. Beim Zugriff auf die Ressourcendatei von einem untergeordneten jar gibt es eine Ausnahme: java.io.FileNotFoundException: Datei 'file: PATH_TO_CHILD_JAR/example-1.0.0-0-SNAPSHOT-jar-mit-abhängigkeiten.jar! Resource_file_path/abs.sql.tpl ' ist nicht vorhanden.JAR-Datei aus einem anderen Jar ausführen

Ich bin nicht in der Lage zu verstehen, warum es "!" Markieren Sie während der Suche nach Ressourcendateien.

+0

Bitte überprüfen Sie einmal: https://stackoverflow.com/questions/20389255/reading-a-resource-file-from-within-jar#20389418 –

Antwort

0

Versuchen Sie, diese

// Run a java app in a separate system process 
Process proc = Runtime.getRuntime().exec("java -jar A.jar"); 
// Then retreive the process output 
InputStream in = proc.getInputStream(); 
InputStream err = proc.getErrorStream(); 
0

Sie die JAR-Datei mit in Java-Programm ausführen kann.

Stellen Sie sicher, dass Sie die Manifest-Datei im Jar mit dem Hauptklassenattribut hinzugefügt haben.

Meine Schritte und Ausgang:

Erstellt Manifest-Datei mit der folgenden Zeile: Main-Klasse: com.demo.TestJar

Erstellt Test-Java-Programm:

package com.demo; 
    public class TestJar extends Object { 
    public static void main(String args[]) { 
    System.out.println("TestJar"); 
    } 
} 

Paket der jar: jar cvfm /home/user/TestJarOne.jar manifest.txt

Schreiben Testprogramm:

import java.io.BufferedInputStream; 
import java.io.IOException; 

public class TestJSS extends Object { 

static int i = 0; 

public static void main(String args[]) throws IOException, InterruptedException { 
    System.out.println("Calling jar"); 
    Process p = Runtime.getRuntime().exec("java -jar /home/user/TestJarOne.jar arg1 arg2"); 
    BufferedInputStream bis = new BufferedInputStream(p.getInputStream()); 
    synchronized (p) { 
     p.waitFor(); 
    } 
    System.out.println(p.exitValue()); 
    int b=0; 
    while((b=bis.read()) >0){ 

     System.out.print((char)b);  
    }   
    System.out.println(""); 
    System.out.println("Called jar"); 
    } 

}

Verwandte Themen