我今天早些时候在 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?");
我希望我没有把你们都和我的问题搞混了。请帮我解决一下这个。我已经安静地坚持了很长时间,我很确定这是一个非常微小的错误,我无法做到。