`

java启动相应的windows程序来打开文件

 
阅读更多
这里有两种方法:
1.利用java运行时环境和windows系统应用程序
    首先我们都知道,在Windows中浏览器可以用来打开很多不同的文件,比如网页,txt和pdf等等(前提是你的系统注册了相关软件)。 那么IE是通过什么方式来实现不同文件用不同软件来打开呢?  其实它有一个叫url.dll 的动态链接库,url.dll提供了IE调用 各种应用来打开不同文件的实现。既然IE提供了这样一个功能,我们就可以在java程序中利用它。那么,我们如何在java程序中调用动态链接库呢? 我们知道,windows系统提供了一个叫Rundll32.exe的文件,它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。rundll32.exe的具体使用方法如下:
Rundll32.exe DLLname,Functionname [Arguments]
DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。
结合url.dll和rundll32.exe,我们就可以通过在命令行中启动相应程序打开相应文档: 假设我有一个pdf文档,存放在c: est.pdf 。打开命令行, 运行如下 命令:
rundll32 url.dll FileProtocolHandler file://c: est.pdf 

    好了,我们知道如何运行命令来打开相应文档。那么,要在java代码中调用,也就很简单了。这里我们就要用到java运行时环境了。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时(java.lang.Runtime)。它有一个exec(String command)方法,能在单独的进程中执行指定的字符串命令,我们就用它来实现调用windows应用程序。
如下调用:

String cmd="rundll32 url.dll FileProtocolHandler file://c: est.pdf ";//要打开的文件的路径  
Process p = Runtime.getRuntime().exec(cmd);//创建一个子进程来执行以上命令,打开文件  


现在,我们就实现了通过统一的方式打开文档的方法。(只要IE能打开的文档,这个java程序就能打开)。

2.利用Desktop实现
    java.awt.Desktop类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI 或文件。
    它支持的操作包括:
    启动用户默认浏览器来显示指定的 URI;
    启动带有可选 mailto URI 的用户默认邮件客户端;
    启动已注册的应用程序,以打开、编辑或打印指定的文件。
此类提供与这些操作对应的方法。这些方法查找在当前平台上注册的关联应用程序,并启动该应用程序来处理 URI 或文件。如果没有关联应用程序或关联应用程序无法启动,则抛出异常。而应用程序被注册为 URI 或文件类型,注册、访问和启动关联应用程序的机制与平台有关。使用方法如下:

Desktop desk=Desktop.getDesktop();  
try  
{  
    File file=new File("E:\电子书\Java开发\java简单基础教程.chm");//创建一个java文件系统  
    desk.open(file); //调用open(File f)方法打开文件   
}catch(Exception e)  
{  
    System.out.println(e.toString());  
}  


凡是在当前平台上已注册并关联的文件都能这样打开。

转自:http://wujianjun0410.iteye.com/blog/944912
分享到:
评论

相关推荐

    java实现windows文件系统操作监控

    在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...

    java调用Windows应用程序

    - `cmd /c start` 命令用于在Windows系统中启动一个新进程来打开文件。 **注意事项**: - 文件路径必须准确无误。 - 确认文件格式是否支持自动播放。 - 考虑到跨平台的问题,如果目标应用是在不同平台上使用,则...

    文件管理中打开文件,关联并自己的APP启动

    当我们谈论“文件管理中打开文件,关联并自己的APP启动”这个主题时,我们实际上是在讨论一种功能,即如何让一个应用程序能够处理特定类型的文件,并且在用户尝试打开这类文件时,使该应用出现在系统的打开方式列表中...

    java实现简单的记事本程序(内含源代码)

    例如,可以为“打开”按钮添加一个ActionListener,当用户点击按钮时执行相应的打开文件操作。 4. **文件I/O操作**: - Java提供了丰富的File类和BufferedReader/BufferedWriter类,用于读写文件。在记事本程序中...

    把java文件做成exe

    2. **创建新项目**:打开EXE4J,创建一个新的项目,并选择相应的项目类型(如Java启动器)。 3. **导入JAR文件**:将编译好的JAR文件添加到项目中,指定主类。 4. **配置JVM**:指定要使用的JRE版本,可以是系统已...

    将Java控制台应用作为windows服务

    在Windows操作系统中,通常我们运行的应用程序都是通过图形界面启动的,但有些应用程序,比如Java控制台应用,它们没有GUI,而是直接在命令行中运行。这样的应用如果需要在系统启动时自动启动,或者需要持续运行,就...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java调用外部文件

    这段代码会尝试使用用户的默认程序(通常是Windows的帮助查看器)打开指定的.chm文件。如果文件不存在或不是有效的.chm文件,程序会给出相应的提示。 值得注意的是,调用外部程序时,你需要考虑跨平台兼容性。`...

    LibreOffice:java 预览Excel、java预览word、java预览DOCX

    通过UnoBridge,你可以控制LibreOffice启动、打开文档、预览并捕获预览的屏幕截图,然后在Java应用中显示。 5. **Swing或JavaFX**:为了在Java应用中展示预览,可以使用Swing或JavaFX来构建用户界面。这两个库提供...

    flink新版本bat启动文件.zip

    总之,面对Flink新版本中缺少`.bat`启动文件的情况,只需简单地将压缩包中的文件复制到相应目录,即可恢复在Windows下的正常使用。同时,理解Flink的基本工作原理和配置,对于高效利用这一强大的流处理框架是至关...

    java执行可执行文件或批处理

    除了执行可执行文件和批处理文件外,还可以通过指定相应的应用程序来打开其他类型的文件。例如,要打开一个名为`a.doc`的Word文档,可以使用以下代码: ```java Process process = Runtime.getRuntime().exec(...

    Java项目开发与毕业设计指导

    像其他的Java应用程序一样,Aglet平台需要通过Java policy文件(通常是.java.policy)来打开Socket、执行Agent、获取本地文件等。这项工作可以通过ant来完成,我们可以在bin目录下输入如下指令: ant install-home...

    把java原代码变成可执行文件exe

    2. **编辑BAT文件**:在BAT文件中,输入命令`start java -jar MainWindow.jar`,其中`java`是调用JVM的命令,`-jar`参数指示JVM从JAR文件启动应用程序。 3. **测试BAT文件**:保存BAT文件后,双击运行它。此时,...

    Tomcat 7 Windows中以Service方式启动配置启动参数

    在Windows环境中以Service方式启动Tomcat时,默认的JVM参数设置往往较低,这可能导致在运行大型应用程序时遇到内存不足的问题,例如常见的`java.lang.OutOfMemoryError: PermGen space`错误。为了避免这类问题的发生...

    在DOS环境下(cmd)编译及运行java程序教程

    批处理文件的内容可能包括询问用户输入程序所在的磁盘和文件名,然后执行相应的`javac`和`java`命令。 5. **配置Java环境变量**:在Windows系统中,正确配置Java开发工具包(JDK)的环境变量是必不可少的。你需要...

    如何生成一个java编制的可执行文件

    2. **启动exe4j**:打开exe4j程序后,选择“New Project”创建一个新的项目。 3. **选择JAR in EXE模式**:在项目类型中选择“JAR in EXE”,点击下一步。 4. **指定JAR文件**:在接下来的界面中,指定之前创建的...

    一键启动所有的jar包

    `javaw`是Java的无控制台版本,用于启动Java应用程序,`-jar`参数指定要运行的jar文件。`start`命令则会在新的窗口中打开Java应用,这样可以同时启动多个jar包而不会相互影响。 不过,需要注意的是,批处理脚本的...

    java写字板程序源码

    6. **文件操作**:为了实现“打开”和“保存”功能,程序通常会使用Java的`File`和`FileInputStream`/`FileOutputStream`类来读写文件。此外,可能还会使用`BufferedReader`和`BufferedWriter`进行文本流的读写。 7...

    exe4 把JAVA文件打包成EXE工具

    5. **自定义启动参数**:允许设置Java启动参数,如内存分配、主类等。 6. **安全性和兼容性**:exe4j生成的`.exe`文件具有数字签名和代码加密功能,提高了安全性。同时,它也兼容不同的Java版本。 **使用exe4j的...

Global site tag (gtag.js) - Google Analytics