public class Demo
{
public static void main(String[] args)
{
Runtime rn=Runtime.getRuntime();
Process p =null;
try
{
p=rn.exec("\"D:/Documents and Settings/cf3016/Desktop/barcode/barcode/bfamily/bf300.exe \"");
}catch(Exception e)
{
System.out.println("Error exec bf300.exe");
}
}
}
上面的程序是我調用了BF300.exe,這個程序。
我的問題是:
在JAVA程序里調用BF300.exe這個可執行程序的同時,打開一個BF300.EXE這個程序能打開的文件(這個文件由我程序里指定)?
謝謝了

解决方案 »

  1.   

    BF300.exe支持传递参数的话,下面这样就可以了。
    p=rn.exec(new String[]{"\"D:/Documents and Settings/cf3016/Desktop/barcode/barcode/bfamily/bf300.exe \"","参数1","参数2"}); 
      

  2.   

    据我所知,这是办不到的.
    BF300.exe 和Java 不属于一个进程.有些程序支持参数,例如 a.exe -b.c 之类的,但那需要目标程序支持.恐怕那个bf300.exe不支持.
    换个思路, 比如你要打开的文件叫 abc.bf, 你只要在windows中将该类型文件bf与bf300.exe 关联,
    然后直接runtime.exec("'abc.bf'")即可.
    至于将类型文件bf与bf300.exe 关联通过操作windows注册表就可以做到,java是可以做到的.
      

  3.   

    凡事有先后,rn.exec("\"D:/Documents and Settings/cf3016/Desktop/barcode/barcode/bfamily/bf300.exe \""); 这句必须首先执行完成,
    之后才能打开它能够打开的文件,不可能同时或者在相隔很短的时间内进行,建议考虑线程。
    至于如何用BF300.exe自行打开程序指定的文件,我好像还没有见过;
    毕竟,每个应用程序打开它能够打开的文件的方式是不一样的,比如:用QQ打开聊天记录就不是那么简单
      

  4.   

    我想你誤解我的意思了,
    我的意思是,在JAVA程序里調用BF300.EXE這個程序(就是執行BF300.exe),既然執行這個程序,我就讓他打開一個他支持的格式的文件。
      

  5.   


    謝謝你的幫助-_-
    我的問題在你哦幫助下解決了
    public class Demo
    {
    public static void main(String[] args)
    {
    Runtime rn=Runtime.getRuntime();
    Process p =null;
    try
    {
    p=rn.exec(new String[]{"\"D:/Documents and Settings/cf3016/Desktop/barcode/barcode/bfamily/bf300.exe \"","dachuang/dachuang.lei"});  //p=rn.exec("\"D:/Documents and Settings/cf3016/Desktop/barcode/barcode/bfamily/bf300.exe E:/barcode/bfamily/dachuang/dachuang.lei\"");
    }catch(Exception e)
    {
    System.out.println("Error exec bf300.exe");
    }
    }
    }
      

  6.   

    我知道:比如你想打开Notepad.exe,然后紧接着用Notepad.exe打开.txt文件,对吧?
    我说的是一个意思啊,可以打开QQ.exe,同时QQ的聊天记录也是放在一个文件中的啊,但是要打开它的话,你说这有可能吗?