描述:
我在java程序中调用Oracle的exp外部指令 ,程序有一个这样问题请帮忙分析 ExpMain.java 采用的Process process = Runtime.getRuntime().exec(exp user/pwd@pa file=a.dmp)这种方式调用外部指令 我的java程序名称叫 ExpMain.java ,后来我写了一个expmain.bat批处理(主要就是调用java的main函数),内容如下 ****
java ExpMain.class
****** 当我运行该批处理的时候,系统出现一个黑色的command窗口,去执行exp命令,我也能看到我导出的dmp数据文件在增长
但是,当我在bat窗口上Ctrl+Break 或者 点右上角的“关闭”按钮后,bat关了,java程序也关了,但是exp那个命令还在执行(因为我导的数据比较大,时间比较长),我想我把bat关闭后,也把那个exp的进程停止,我该如何操作?请高手解决,谢谢
我在java程序中调用Oracle的exp外部指令 ,程序有一个这样问题请帮忙分析 ExpMain.java 采用的Process process = Runtime.getRuntime().exec(exp user/pwd@pa file=a.dmp)这种方式调用外部指令 我的java程序名称叫 ExpMain.java ,后来我写了一个expmain.bat批处理(主要就是调用java的main函数),内容如下 ****
java ExpMain.class
****** 当我运行该批处理的时候,系统出现一个黑色的command窗口,去执行exp命令,我也能看到我导出的dmp数据文件在增长
但是,当我在bat窗口上Ctrl+Break 或者 点右上角的“关闭”按钮后,bat关了,java程序也关了,但是exp那个命令还在执行(因为我导的数据比较大,时间比较长),我想我把bat关闭后,也把那个exp的进程停止,我该如何操作?请高手解决,谢谢
public static void main(String[] args) {
System.out.println("111111111");
try {
Process process=Runtime.getRuntime().exec("exp test/test@test_37 tables=(xzqh_hunan) file=d:\\test\\hunan.dmp");
InputStreamReader isr = new InputStreamReader(process.getErrorStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
process.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("2222222222");
}
}我在command窗口这样运行 java ExpMain 运行,出现如下信息D:\eclipse\workspace\etldata\bin>java test.Test
111111111Export: Release 10.2.0.1.0 - Production on 星期二 6月 16 20:57:54 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
我想立刻终止: Ctrl+break ,但是后台的exp依然在执行,这怎么办?