用另一个API试试,把sqlplus所在的目录写在第三个参数上。exec(String command, String[] envp, File dir) 

解决方案 »

  1.   

    我也遇到类似的问题,但我是重启一个进程。
    我想之所以这样我想是因为一:你要在sqlplus 后加上用户名和密码; 二:指出sqlplus可执行程序的具体路径;三:加上运行这个名令的shell文件。以上只能做为参考,因为到现在为止,我的问题还没有解决!
    如果要带参数应该怎么加???
    关注!!!!!
      

  2.   

    我写完完整的路径还是不行
    Runtime.getRuntime().exec("F:\\oracle\\ora81\\bin\\sqlplus.exe");
    这条语句出现的结果一样,运行时没有错误,只是运行的时候弹出黑框后就立刻消失了,sqlplus却不能启动。
      

  3.   

    运行其他程序有问题么?
    BufferedReader prcout = new BufferedReader(
                            new InputStreamReader(
                            new BufferedInputStream(prc.getInputStream())));  while ((line = prcout.readLine()) != null){
    System.out.println(line);
    }
    把执行以后的信息打出来看看?要不然用sqlplusw.exe好了,合乎俄。
      

  4.   

    我刚刚试了,不管有没有使用完整路径,都可以正常启动sqlplus阿。
      

  5.   

    可是我现在想执行一条exp语句,
    Runtime.getRuntime().exec("exp user/password file=filename");
    为什么这样不能执行?
      

  6.   

    执行Runtime.getRuntime().exec("sqlplus")不行
    执行Runtime.getRuntime().exec("sqlplusw")就可以,是不是java不支持dos命令?
      

  7.   

    Java支持DOS命令,但要加上cmd /c 
    例如:Runtime.getRuntime().exec("cmd /c dir");就可运行!
      

  8.   

    Runtime.getRuntime().exec("****")    这里的**** 应该是可执行程序   
    xxxx.exe (对应于oracle\..\bin\sqlplusw.exe)
      

  9.   

    我在JBuilder6,0中用Runtime.getRuntime().exec("cmd /c dir");还是不能执行,我想让程序自动执行exp来进行备份,所以想用Runtime.getRuntime().exec("exp user/password file=filename");来执行。
    如果将语句写成.bat文件,用Runtime.getRuntime().exec("D:\\backup.bat");还是不能执行。
      

  10.   

    exec(String command, String[] envp, File dir) 
    试着把sqlplus的工作目录和环境变量传进去看看行不?
      

  11.   

    凡是你在命令行可以正确执行的命令(cmd),你用Runtime.getRuntime().exec(cmd)就可以启动,当然要用'/'代替'\';如果你在命令行中能使用参数,那用Runtime就也可以。
    行不行,你自己先在Windows的模拟dos窗口执行看看嘛。不行的话,那就根本不管Runtime的事。
      

  12.   

    Process p = Runtime.getRuntime().exec("cmd.exe /c F:\\oracle\\ora81\\bin\\sqlplus.exe");
    p.waitFor();