Ich versuche, ein Skript auf meinem Tomcat-Webserver auszuführen. Um das Skript zuvor auf meinem lokalen Computer auszuführen, ist dies der Code, den ich verwendet habe.Ausführen eines Skripts aus einem Ordner auf einem Tomcat-Server
String absolutePath = new File(".").getAbsolutePath();
int last = absolutePath.length()-1;
absolutePath = absolutePath.substring(0, last);
String filePath = "";
if(osVersion.equalsIgnoreCase("Ubuntu"))
{
try (FileReader fr = new FileReader("template.txt");
FileWriter fw = new FileWriter("Ubuntu/ubuntu_file.json");) {
int c = fr.read();
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
}
filePath = "Ubuntu";
String fi = absolutePath + filePath;
System.out.println(fi);//Get the full path.
// Create ProcessBuilder.
ProcessBuilder pb = new ProcessBuilder("bash", "-c",
"cd "+fi+" ; PACKER_LOG=1 /usr/local/bin/packer build ubuntu_file.json");
Process p = pb.start();
Wenn aber ich versuche, es auf dem Webserver Kater zu laufen, ich erhalte diesen Fehler.
EclipseEE.app/Contents/MacOS/Ubuntu fehlgeschlagen Vorlage analysieren: open ubuntu_file.json:
Ich bin zu Tomcat ziemlich neu keine solche Datei oder das Verzeichnis, und ich lerne gerade, dass es Ins und Outs. In welches Tomcat-Verzeichnis soll ich meinen Ubuntu-Ordner stellen (ich nehme an, es ist das Webapp-Verzeichnis), damit Tomcat den absoluten Pfad des Ordners bekommt und dann das Skript ausführen kann.
Sie sollten niemals auf das aktuelle Verzeichnis eines Webservers (z. B. Tomcat) angewiesen sein. Verwenden Sie immer vollständig qualifizierte Dateinamen im Webanwendungscode. – Andreas
Es tut mir leid, wenn das dumm klingt. Ich bin neu in all dem. Wie soll ich es dann machen? Es sollte ursprünglich keine Web-App sein. – user3078335
Wenn Sie einen qualifizierten Dateinamen nicht fest codieren möchten (keine gute Idee), bedeutet dies, dass Ihre Webanwendung * konfiguriert * werden muss, z. [Servlet-Initialisierungsparameter] verwenden (http://stackoverflow.com/q/14665037/5221149). – Andreas