尝试为 JAVA_HOME 提供完整路径(例如 /usr/lib/jvm/java-6-sun/bin/java 而不是 java)。exec 没有 Shell 环境变量。
也使用
restart.waitFor(); //wait until process finishes
以确保 Java 在进程完成之前不会退出。
如果您确实想在 shell 中运行(并使用 shell 特定的东西,如 pipe 和 ls),请执行以下操作:
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add("java -jar /home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar");
SystemCommandExecutor commandExecutor = new SystemCommandExecutor(commands);
int result = commandExecutor.executeCommand();
commandExecutor.waitFor(); //wait until process finishes