您设置的$PATH变量不是在Java的执行上下文中继承的。{cdbin>尝试传递Python的执行路径^。在
为此,下面的代码首先检索所有环境变量并创建一个ENV_KEY=ENV_VALUE对数组。在
然后,到Python的bin的路径被附加到path值中。在
最后,我们将所有环境变量的数组传递给exec()(通过第二个参数)。在import java.util.HashMap;
import java.util.Map;
public class Driver {
public static void main(String[] args){
try {
String[] commands = {"python D:/Coding Files/Python/MusicColors.py teenagers.wav"};
// Get a list of all environment variables
final Map envMap = new HashMap(System.getenv());
// Append Python bin path to Path
envMap.put("Path", envMap.get("Path") + ";C:/Users/Joe/AppData/Local/Programs/Python/Python35-32");
// Convert to an array of ENV_KEY=ENV_VALUE format strings
final String[] envs = new String[envMap.size()];
int i = 0;
for (Map.Entry e : envMap.entrySet()) {
envs[i] = e.getKey() + '=' + e.getValue();
i++;
}
// Exec with the environment variables
Process p = Runtime.getRuntime().exec(commands, envs);
}
catch (Exception e){
System.out.println(e);
}
}
}