0

我今天早些时候在 Raspberry Pi 上远程运行/执行 jar 文件时遇到了问题。我以某种方式设法在 Raspberry Pi 上运行/执行 jar。我面临一个新问题,这对我来说很奇怪,我无法理解为什么。它是这样的:

我有一个名为 JavaApplication2.jar 的 jar 文件。我在支持 Windows 操作系统的机器上运行/执行这个 jar,它可以工作。(jar 创建一个文件夹)

现在,我尝试在 Raspberry Pi 上运行相同的 jar,它再次完美运行。要在我使用的两个不同平台上运行/执行相同的 jar 文件:

java -jar JavaApplication2.jar "file1"

我只有 JavaApplication2.jar 中的主文件,它看起来像这样:

public static void main(String[] args)throws FileNotFoundException, IOException {
    // TODO code application logic here
    System.out.println("This is the Example of the JAR");
    System.out.println("I hope it runs");
    if(args[0].equalsIgnoreCase("file1")){
        String filename = "readfile.txt";
        String filepath;
        BufferedReader br = new BufferedReader(new FileReader(filename));
        while((filepath=br.readLine())!=null){
            System.out.println(filepath);
            File dir = new File(filepath);
            if (!dir.exists()) {
                dir.mkdir();
                System.out.println("Is the File created??");
            }
            else System.out.println("File Exists!!");
        }
    }
    else 
        if(args[0].equalsIgnoreCase("file2")){
            System.out.println("Finally");
        }
    }
}

现在,我在我的 Windows 机器上创建了一个 Servlet,并在 Raspberry Pi 上从我的机器上运行相同的 jar。在这里,它部分执行了 jar。它不会创建文件夹(应该是 jar 的最终输出)。

Servlet 如下图所示:

Runtime r = Runtime.getRuntime();
out.println("Am I here??");
Process p = null;
//p = r.exec(new String[] {"cmd","/c", "start /home/pi/JARTest/JavaApplication24.jar"});
p = r.exec(new String[] {"java","-jar", "/home/pi/JavaApplication24.jar", "file1"});
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
String line = null;  
while ((line = in.readLine()) != null) {  
    out.println(line);  
}
out.println("Did it work?");

我希望我没有把你们都和我的问题搞混了。请帮我解决一下这个。我已经安静地坚持了很长时间,我很确定这是一个非常微小的错误,我无法做到。

4

0 回答 0