Java等待进程完成并将修改后的文件上载到数据库中

Java等待进程完成并将修改后的文件上载到数据库中,java,swing,oracleforms,Java,Swing,Oracleforms,我正在寻找一种用Java打开MS Word应用程序的方法,在用户完成用MS Word编辑打开的文档后,该过程必须将修改后的文件上传到数据库中 我尝试使用Process命令和waitFor方法,但Java并没有等待进程完成 还有其他解决办法吗?或者你知道怎么做吗? 例如: public static void main(String[] args) { try { int exitValue = 0; //open MS WORD..

我正在寻找一种用Java打开MS Word应用程序的方法,在用户完成用MS Word编辑打开的文档后,该过程必须将修改后的文件上传到数据库中

我尝试使用Process命令和waitFor方法,但Java并没有等待进程完成

还有其他解决办法吗?或者你知道怎么做吗? 例如:

public static void main(String[] args) {
        try {
            int exitValue = 0;
            //open MS WORD....
            Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler winword "+filename);
            //wait for a process to finish..
            int i = p.waitFor();
            //upload modified file to database
            upload(...);
            System.out.println(i);
        } catch (IOException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InterruptedException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Swing要求您的程序仅在上构造和操作Swing GUI对象。当用户完成编辑时,执行一个命令,使用
ProcessBuilder
doInBackground()的实现中处理上载。或者,在
JTextArea
中显示上传过程的诊断输出。根据需要调用
setProgress()
;正在侦听的
JProgressBar
将相应地更新自身。将文件标记为保存在
done()
的实现中

我们可以看到一个相关的例子


Swing要求您的程序仅在上构造和操作Swing GUI对象。当用户完成编辑时,执行一个命令,使用
ProcessBuilder
doInBackground()的实现中处理上载。或者,在
JTextArea
中显示上传过程的诊断输出。根据需要调用
setProgress()
;正在侦听的
JProgressBar
将相应地更新自身。将文件标记为保存在
done()
的实现中

我们可以看到一个相关的例子