微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Java打开文档的更好方法?

我一直在使用下面的代码来打开我的Windows计算机上使用Java的Office文档,PDF等,它的工作正常,除了某些原因,当一个文件名已经embedded它的多个连续的空间,如“文件[空间] [ SPACE] Test.doc的”。

我怎样才能做这个工作? 我并不反对整段代码…但是我宁愿不把它replace成调用JNI的第三方库。

public static void opendocument(String path) throws IOException { // Make forward slashes backslashes (for windows) // Double quote any path segments with spaces in them path = path.replace("/","\").replaceAll( "\\([^\\\\"]* [^\\\\"]*)","\\\"$1""); String command = "C:\Windows\System32\cmd.exe /c start " + path + ""; Runtime.getRuntime().exec(command); }

编辑:当我运行与错误文件窗口抱怨find该文件。 但是…当我直接从命令行运行命令行,它运行得很好。

如何在Java 9中获得ProcessLine和Process的参数

Java运行时进程不会“grep”

使用Fortran求解器在Windows 64位上安装Odespy

万无一失的跨平台进程kill守护进程

在Linux中顺序分配进程ID?

Windows上的Java 8 64位,符合FIPS 140标准的NSS

PHP-FPM – 杀死所有属于PHP-fpm的linux进程 – 一个命令行

如何使meteor在Windows 10上的64位mongodb上工作?

在64位进程(特别是Flash)中托pipe32位OCX

Windows,多进程vsmultithreading

如果您正在使用Java 6,则可以使用java.awt.Desktop的open方法使用当前平台的认应用程序启动该文件

不知道这是否会帮助你很多…我使用java 1.5 +的ProcessBuilder在java程序中启动外部shell脚本。 基本上我做了以下操作:(虽然这可能不适用,因为你不想捕获命令的输出;你实际上想要启动文件 – 但也许这会引发你可以使用的东西)

List<String> command = new ArrayList<String>(); command.add(someExecutable); command.add(someArguemnt0); command.add(someArgument1); command.add(someArgument2); ProcessBuilder builder = new ProcessBuilder(command); try { final Process process = builder.start(); ... } catch (IOException ioe) {}

问题可能是您正在使用的“开始”命令,而不是您的文件名解析。 例如,这似乎在我的WinXP机器上运行良好(使用JDK 1.5)

import java.io.IOException; import java.io.File; public class test { public static void opendocument(String path) throws IOException { path = """ + path + """; File f = new File( path ); String command = "C:\Windows\System32\cmd.exe /c " + f.getPath() + ""; Runtime.getRuntime().exec(command); } public static void main( String[] argv ) { test thisApp = new test(); try { thisApp.opendocument( "c:\so\My Doc.doc"); } catch( IOException e ) { e.printstacktrace(); } } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐