下面通过三种使用java的Process或ProcessBuilder使用系统程序打开文件或程序
?
package Interesting; import java.awt.Desktop; import java.io.File; import java.io.IOException; /** * <pre> * 调用系统程序打开指定文件:三种方法--@清山 * </pre> * <hr Color="green" ></hr> * 2011 Qingshan Group版权所有 * <hr Color="green" ></hr> * @author thetopofqingshan * @version 1.0.2 * @since JDK 1.5 * @date 2011-12-30 */ public class OpenVariousFiles { public static void main(String[] args) { new OpenVariousFiles().run(); } /** * <pre> * 测试各种方法实现的效果 * </pre> * */ public void run() { String filePath = "B:/java资料/课程标准.doc"; System.out.println(byDesktop(filePath)==true?"打开成功":"打开失败"); String application = "C:/Program Files/Kingsoft/WPS Office Personal/office6/wps.exe"; myself_application(application, filePath); commonOpen(filePath); } /** * <pre> * 调用桌面已有程序打开指定文件 * </pre> * @param path * @return 输入的路径格式是否是文件/打开文件的情况 * */ public boolean byDesktop(String path){ /**根据路径创建文件对象*/ File file = new File(path); System.out.println(file.exists()); /**验证文件对象是否是文件*/ if(file.isFile()){ /**得到java.awt.Desktop对象 */ Desktop desktop = Desktop.getDesktop(); try { /**打开文件*/ desktop.open(file); } catch (IOException e) { System.out.println(e); } return true; }else{ return false; } } /** * <pre> * 调用系统指定应用程序打开指定文件 * </pre> * @param applicationPath 程序名称 * @param filePath 文件路径路径 * @return 输入的路径格式是否是文件/打开文件的情况 * */ public boolean myself_application(String applicationPath, String filePath){ try { /**开启本地系统相应进程来打开文件 注意:两个参数的间的空格*/ Runtime.getRuntime().exec(applicationPath+" "+filePath); return true; } catch (IOException e) { System.out.println(e); return false; } } /** * <pre> * 通用:只要系统有打开相应文件的程序 * </pre> * @param filePath 文件路径路径==>注:如果打开目录或文件名含有空格, 将找不到,有哪位朋友已解决,请留言 * @return 输入的路径格式是否是文件/打开文件的情况 */ public boolean commonOpen(String filePath){ try { /**开启本地系统相应进程来打开文件 注意:两个参数的间的空格*/ Runtime.getRuntime().exec("cmd /c start "+filePath); return true; } catch (IOException e) { System.out.println(e); return false; } } }