关于Runtime的问题,快来看看 用另一个API试试,把sqlplus所在的目录写在第三个参数上。exec(String command, String[] envp, File dir) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也遇到类似的问题,但我是重启一个进程。我想之所以这样我想是因为一:你要在sqlplus 后加上用户名和密码; 二:指出sqlplus可执行程序的具体路径;三:加上运行这个名令的shell文件。以上只能做为参考,因为到现在为止,我的问题还没有解决!如果要带参数应该怎么加???关注!!!!! 我写完完整的路径还是不行Runtime.getRuntime().exec("F:\\oracle\\ora81\\bin\\sqlplus.exe");这条语句出现的结果一样,运行时没有错误,只是运行的时候弹出黑框后就立刻消失了,sqlplus却不能启动。 运行其他程序有问题么?BufferedReader prcout = new BufferedReader( new InputStreamReader( new BufferedInputStream(prc.getInputStream()))); while ((line = prcout.readLine()) != null){ System.out.println(line);}把执行以后的信息打出来看看?要不然用sqlplusw.exe好了,合乎俄。 我刚刚试了,不管有没有使用完整路径,都可以正常启动sqlplus阿。 可是我现在想执行一条exp语句,Runtime.getRuntime().exec("exp user/password file=filename");为什么这样不能执行? 执行Runtime.getRuntime().exec("sqlplus")不行执行Runtime.getRuntime().exec("sqlplusw")就可以,是不是java不支持dos命令? Java支持DOS命令,但要加上cmd /c 例如:Runtime.getRuntime().exec("cmd /c dir");就可运行! Runtime.getRuntime().exec("****") 这里的**** 应该是可执行程序 xxxx.exe (对应于oracle\..\bin\sqlplusw.exe) 我在JBuilder6,0中用Runtime.getRuntime().exec("cmd /c dir");还是不能执行,我想让程序自动执行exp来进行备份,所以想用Runtime.getRuntime().exec("exp user/password file=filename");来执行。如果将语句写成.bat文件,用Runtime.getRuntime().exec("D:\\backup.bat");还是不能执行。 exec(String command, String[] envp, File dir) 试着把sqlplus的工作目录和环境变量传进去看看行不? 凡是你在命令行可以正确执行的命令(cmd),你用Runtime.getRuntime().exec(cmd)就可以启动,当然要用'/'代替'\';如果你在命令行中能使用参数,那用Runtime就也可以。行不行,你自己先在Windows的模拟dos窗口执行看看嘛。不行的话,那就根本不管Runtime的事。 Process p = Runtime.getRuntime().exec("cmd.exe /c F:\\oracle\\ora81\\bin\\sqlplus.exe");p.waitFor(); 对IO输入输出重定向的疑惑,System.setIn() java问题 如何用Java写一个简易的多线程的HTTP Web Server oracle安装问题 为何我java函数返回不了值 在html页面中,如何用程序判断本机是否连接到因特网? JAVA小程序入门问题 如何在servlet中取得当前webapp 根目录url的 jdbc连接数据库 汉洛塔问题求解程序,错在哪里啊? 哪里能看到jvm源代码?那是用汇编写的吗? “不合法的转义字符”的错误!
我想之所以这样我想是因为一:你要在sqlplus 后加上用户名和密码; 二:指出sqlplus可执行程序的具体路径;三:加上运行这个名令的shell文件。以上只能做为参考,因为到现在为止,我的问题还没有解决!
如果要带参数应该怎么加???
关注!!!!!
Runtime.getRuntime().exec("F:\\oracle\\ora81\\bin\\sqlplus.exe");
这条语句出现的结果一样,运行时没有错误,只是运行的时候弹出黑框后就立刻消失了,sqlplus却不能启动。
BufferedReader prcout = new BufferedReader(
new InputStreamReader(
new BufferedInputStream(prc.getInputStream()))); while ((line = prcout.readLine()) != null){
System.out.println(line);
}
把执行以后的信息打出来看看?要不然用sqlplusw.exe好了,合乎俄。
Runtime.getRuntime().exec("exp user/password file=filename");
为什么这样不能执行?
执行Runtime.getRuntime().exec("sqlplusw")就可以,是不是java不支持dos命令?
例如:Runtime.getRuntime().exec("cmd /c dir");就可运行!
xxxx.exe (对应于oracle\..\bin\sqlplusw.exe)
如果将语句写成.bat文件,用Runtime.getRuntime().exec("D:\\backup.bat");还是不能执行。
试着把sqlplus的工作目录和环境变量传进去看看行不?
行不行,你自己先在Windows的模拟dos窗口执行看看嘛。不行的话,那就根本不管Runtime的事。
p.waitFor();