这是我确切的批处理文件。我试图将其转换为在线进行一些研究并得到错误
“无法执行子进程”/ home / pi / Desktop / TeachVal / TeachValLinuxShell“(没有此类文件或目录)
echo off
cls
echo Running TeachVAL II...
set path=%path%;/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin
java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL
cls
exit
这是我翻译的尝试。
#!/bin/bash
set +v
clear
echo "Running TeachVAL II..."
java -cp ".dir1;dir2;path/home/pi/Desktop/TeachVAL/comm.jar;
path/home/pi/Desktop/TeachVAL/Robot.jar;/home/pi/Desktop/TeachVAL/TeachVAL"
clear
exit
答案 0 :(得分:0)
欢迎使用Linux - 这里的生活很美好,但与Windows相比,有一些功能略有不同。
一个区别是Windows使用分号(;)来分隔路径列表中的条目,但Linux为此目的使用冒号(:)。
所以,Windows命令:
java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL
在Linux上对应于此:
java -classpath comm.jar:Robot.jar:TeachVAL TeachVAL
通常,在Linux上,分号用于将多个命令行放入一行。一旦你了解了这一点,我想你可以理解为什么:
java -cp .dir1;/home/pi/Desktop/TeachVAL/TeachVAL
与:
相同java -cp .dir1
/home/pi/Desktop/TeachVAL/TeachVAL
那将运行java(没有要执行的类),然后尝试运行无法找到的“/ home / pi / Desktop / TeachVAL / TeachVAL”。
还有许多不同之处需要学习;这是一个可以帮助您入门的页面:http://tldp.org/LDP/abs/html/dosbatch.html