求助!java下运行多行dos命令不成功。有原程序。
问题:到了数据库的时候不见数据库启动?
postgresql 数据库
环境变量是进到\bin目录
pg_ctl 为数据库启动命令。
下resin同。
各位大哥帮帮手。
package com.jasinda.JToNTservice;
import java.io.BufferedReader;
import
java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class TestNTService {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Process pro;
try {
pro = Runtime.getRuntime().exec( "cmd ");
System.out.println( "000000 ");
InputStream is = pro.getInputStream();
//InputStream isES = pro.getErrorStream();
OutputStream os = pro.getOutputStream();
String sCmd0 = "cd %PGSQL_HOME% ";// such as dir
os.write(sCmd0.getBytes());
System.out.println( "111111 ");
System.out.println();
String sCmd1= "pg_ctl -D ../data start ";
os.write(sCmd1.getBytes());
System.out.println( "222222 ");
System.out.println();
// try {
// pro.wait(1000);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
String sCmd2 = "cd %RESIN_HOME% ";
os.write(sCmd2.getBytes());
System.out.println( "333333 ");
System.out.println();
String sCmd3= "httpd.exe ";
os.write(sCmd3.getBytes());
System.out.println( "444444 ");
System.out.println();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (true) {
String s = br.readLine();
if (s == null)
break;
System.out.println(s);
}
//br.close();
} catch (
IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 从is和isES中可以得到数据
}
}}
------解决方案--------------------写成.bat批处理文件再执行试试
------解决方案--------------------String sCmd0 = "cd %PGSQL_HOME% "
像这中命令后面加上 "\n ",表示回车。否则不会运行。
还有最好将命令运行的输出显示出来,否则看不到运行结果,不方便调试。
------解决方案--------------------楼主是贩毒的吧,这么多
------解决方案--------------------这么多病毒,怕怕的
------解决方案--------------------学习
------解决方案--------------------养毒的。。
------解决方案--------------------我要成立一个养毒专业户,欢迎楼主加盟. ^O^