0

スクリプトを実行する runshellscript メソッドを呼び出す Java クラスがあります。mysql ではうまくいきましたが、psql ではうまくいかない理由がわかりません。これが私のrunshellメソッドの抜粋です

public static void runShellScript (String unixCommand) 
{
 try {
     Runtime runtime=Runtime.getRuntime();
     Process process=runtime.exec(new String [] { "/bin/csh", "-c", 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 jMenuItem6MousePressed(java.awt.event.MouseEvent evt) {                                        
    // TODO add your handling code here:

    String shellCommand="/vobs/tools/DataValidation/mysqlconnection.csh";

   // RunShellScript run=new RunShellScript();
    RunShellScript.runShellScript(shellCommand);

}      

奇妙なことは、スクリプトが存在するディレクトリに直接移動し、./mysqlconnection と入力すると、スクリプトが機能することです。しかし、mysqlconnection と入力すると、コマンドが見つからないというメッセージが表示されます。どういうわけか、スクリプト名がコマンドとして認識されませんか?

4

0 に答える 0