- 浏览: 103864 次
- 性别:
- 来自: 北京
最新评论
这里有两种方法:
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应用程序。
如下调用:
2.利用Desktop实现
java.awt.Desktop类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI 或文件。
它支持的操作包括:
启动用户默认浏览器来显示指定的 URI;
启动带有可选 mailto URI 的用户默认邮件客户端;
启动已注册的应用程序,以打开、编辑或打印指定的文件。
此类提供与这些操作对应的方法。这些方法查找在当前平台上注册的关联应用程序,并启动该应用程序来处理 URI 或文件。如果没有关联应用程序或关联应用程序无法启动,则抛出异常。而应用程序被注册为 URI 或文件类型,注册、访问和启动关联应用程序的机制与平台有关。使用方法如下:
凡是在当前平台上已注册并关联的文件都能这样打开。
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()); }
凡是在当前平台上已注册并关联的文件都能这样打开。
发表评论
-
PHP中的mb_convert_encoding与iconv函数介绍
2012-02-24 18:01 1023英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用 ... -
PHP实现动态生成饼状图、柱状图和折线图(转)
2011-08-29 17:59 20284PHP在图像操作方面的表 ... -
HTML&JavaScript实现全选小例子
2011-07-07 14:32 1773<html> <head> & ... -
Linux的计划任务
2011-07-01 11:10 844cron是一个linux下的 ... -
Linux Shell编程学习笔记
2011-06-28 10:31 1703其实作为命令语言互动式地解释和执行用户输入的命令只是S ... -
Suse查看版本
2011-04-14 11:10 48611. 在linux里查看补丁版本,一般的机器查看系统版本都是u ... -
BAT批处理文件与文件夹(zz)
2011-04-06 14:35 22661 建bat文件自动执行复制,删除命令。 例1:以下是 ... -
批处理中Copy与Xcopy的区别
2011-04-06 14:34 110001):copy不能在有子目录存 ... -
关于RPT的license的问题
2011-04-06 10:21 1280RPT的license一共有两种,一种是导入安装RPT时附带的 ... -
DB2的备份与恢复
2011-03-28 09:40 1141说明:在线增量备份前提: 1、更改数据库参数 logretai ... -
HTTP代码整理供查询(转的)
2011-01-11 13:54 921代码 指示 2xx 成功 ... -
Java正则表达式(转)
2010-12-20 14:24 1031package example.regularexpres ... -
RollingFileAppender和DailyRollingFileAppender
2010-12-07 17:28 2091log4j提供RollingFileAppender和Dail ... -
(转载)DB2错误代码大全
2010-12-07 10:30 2220DB2错误代码/SQL返回码信 ... -
select的事件(转)
2010-11-25 16:10 1230onactivate 当对象设置为活动元素时触发。 onaf ... -
[转载] Java Timer和TimerTask详解
2010-11-16 09:55 9401.概览 Timer是一种定时 ... -
Timer的schedule()方法的正确使用
2010-09-20 16:08 1625timer.schedule(new MyTask(),lo ... -
DB2 常用命令(转)
2010-09-16 09:53 15111.1 启动DB2服务 db2start ... -
DB2资料搜集(转载)
2010-09-13 13:53 11041.使用db2cmd打开db2命令行 2.db2look - ... -
websphere portal资料整理(转载)
2010-09-01 09:17 1000websphere portal资料整理 1.Webpsher ...
相关推荐
在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...
- `cmd /c start` 命令用于在Windows系统中启动一个新进程来打开文件。 **注意事项**: - 文件路径必须准确无误。 - 确认文件格式是否支持自动播放。 - 考虑到跨平台的问题,如果目标应用是在不同平台上使用,则...
当我们谈论“文件管理中打开文件,关联并自己的APP启动”这个主题时,我们实际上是在讨论一种功能,即如何让一个应用程序能够处理特定类型的文件,并且在用户尝试打开这类文件时,使该应用出现在系统的打开方式列表中...
例如,可以为“打开”按钮添加一个ActionListener,当用户点击按钮时执行相应的打开文件操作。 4. **文件I/O操作**: - Java提供了丰富的File类和BufferedReader/BufferedWriter类,用于读写文件。在记事本程序中...
2. **创建新项目**:打开EXE4J,创建一个新的项目,并选择相应的项目类型(如Java启动器)。 3. **导入JAR文件**:将编译好的JAR文件添加到项目中,指定主类。 4. **配置JVM**:指定要使用的JRE版本,可以是系统已...
在Windows操作系统中,通常我们运行的应用程序都是通过图形界面启动的,但有些应用程序,比如Java控制台应用,它们没有GUI,而是直接在命令行中运行。这样的应用如果需要在系统启动时自动启动,或者需要持续运行,就...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
这段代码会尝试使用用户的默认程序(通常是Windows的帮助查看器)打开指定的.chm文件。如果文件不存在或不是有效的.chm文件,程序会给出相应的提示。 值得注意的是,调用外部程序时,你需要考虑跨平台兼容性。`...
通过UnoBridge,你可以控制LibreOffice启动、打开文档、预览并捕获预览的屏幕截图,然后在Java应用中显示。 5. **Swing或JavaFX**:为了在Java应用中展示预览,可以使用Swing或JavaFX来构建用户界面。这两个库提供...
总之,面对Flink新版本中缺少`.bat`启动文件的情况,只需简单地将压缩包中的文件复制到相应目录,即可恢复在Windows下的正常使用。同时,理解Flink的基本工作原理和配置,对于高效利用这一强大的流处理框架是至关...
除了执行可执行文件和批处理文件外,还可以通过指定相应的应用程序来打开其他类型的文件。例如,要打开一个名为`a.doc`的Word文档,可以使用以下代码: ```java Process process = Runtime.getRuntime().exec(...
像其他的Java应用程序一样,Aglet平台需要通过Java policy文件(通常是.java.policy)来打开Socket、执行Agent、获取本地文件等。这项工作可以通过ant来完成,我们可以在bin目录下输入如下指令: ant install-home...
2. **编辑BAT文件**:在BAT文件中,输入命令`start java -jar MainWindow.jar`,其中`java`是调用JVM的命令,`-jar`参数指示JVM从JAR文件启动应用程序。 3. **测试BAT文件**:保存BAT文件后,双击运行它。此时,...
在Windows环境中以Service方式启动Tomcat时,默认的JVM参数设置往往较低,这可能导致在运行大型应用程序时遇到内存不足的问题,例如常见的`java.lang.OutOfMemoryError: PermGen space`错误。为了避免这类问题的发生...
批处理文件的内容可能包括询问用户输入程序所在的磁盘和文件名,然后执行相应的`javac`和`java`命令。 5. **配置Java环境变量**:在Windows系统中,正确配置Java开发工具包(JDK)的环境变量是必不可少的。你需要...
2. **启动exe4j**:打开exe4j程序后,选择“New Project”创建一个新的项目。 3. **选择JAR in EXE模式**:在项目类型中选择“JAR in EXE”,点击下一步。 4. **指定JAR文件**:在接下来的界面中,指定之前创建的...
`javaw`是Java的无控制台版本,用于启动Java应用程序,`-jar`参数指定要运行的jar文件。`start`命令则会在新的窗口中打开Java应用,这样可以同时启动多个jar包而不会相互影响。 不过,需要注意的是,批处理脚本的...
6. **文件操作**:为了实现“打开”和“保存”功能,程序通常会使用Java的`File`和`FileInputStream`/`FileOutputStream`类来读写文件。此外,可能还会使用`BufferedReader`和`BufferedWriter`进行文本流的读写。 7...
5. **自定义启动参数**:允许设置Java启动参数,如内存分配、主类等。 6. **安全性和兼容性**:exe4j生成的`.exe`文件具有数字签名和代码加密功能,提高了安全性。同时,它也兼容不同的Java版本。 **使用exe4j的...