У меня есть класс Java, в котором я вызываю метод runshellscript, который будет выполнять скрипт. Он хорошо работал с mysql, но я не могу понять, почему он не будет работать с psql. Вот выдержка из моего метода runshell:
public class RunShellScript {
public static void runShellScript (String unixCommand)
{
try {
Runtime runtime=Runtime.getRuntime();
//Process process=runtime.exec(new String [] { "/bin/csh", "-c", unixCommand});
Process process=runtime.exec(new String [] {unixCommand});
InputStream stderr=process.getErrorStream();
InputStreamReader isr=new InputStreamReader (stderr);
BufferedReader br=new BufferedReader (isr);
String line=null;
System.out.println("<ERROR>");
while((line=br.readLine())!=null)
System.out.println(line);
System.out.println(line);
int exitVal=process.waitFor();
System.out.println("Process exitValue:" + exitVal);
}
catch (Throwable t)
{
t.printStackTrace();
}
проблема в том, что когда я помещаю это за событие щелчка мышью, он говорит, что команда не найдена. Вот код события мыши
private void jMenuItem13MousePressed(java.awt.event.MouseEvent evt) {
String shellCommand="vobs/tools/Scripts/DataValidation/mysqlconnection.csh";
RunShellScript.runShellScript(shellCommand);
// TODO add your handling code here:
}
Странно то, что когда я иду прямо в каталог, где находится скрипт, и набираю./mysqlconnection, скрипт работает. Но когда я просто набираю mysqlconnection, пишет, что команда не найдена. Каким-то образом он не распознает мое имя сценария как команду?