我今天早些时候遇到了一个问题,即远程运行/执行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?");
我希望我没有把你的所有问题都弄糊涂了。 请帮我解决一下这个。我已经坚持了很长一段时间的安静,我很确定这是一个非常小的错误,我无法得到。