Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可执行文件的Java文件路径有空格_Java_File_Path_Space - Fatal编程技术网

可执行文件的Java文件路径有空格

可执行文件的Java文件路径有空格,java,file,path,space,Java,File,Path,Space,我有一个Java程序,它要求用户输入需要执行的文件的路径 路径可以是这样的,例如:C:/ProgramFiles/Citrix/ICA Client/pnagent.exeI使用此路径创建一个文件对象,检查以确保它存在,检查以确保它是一个文件,检查以确保它是可执行的。就文件而言,它是一个存在的完全有效的对象 注意:文件对象称为“脚本” 但是当我运行脚本时,我收到空格上的错误 Runtime rt = java.lang.Runtime.getRuntime(); Process pp = rt.

我有一个Java程序,它要求用户输入需要执行的文件的路径

路径可以是这样的,例如:
C:/ProgramFiles/Citrix/ICA Client/pnagent.exe
I使用此路径创建一个
文件
对象,检查以确保它存在,检查以确保它是一个文件,检查以确保它是可执行的。就
文件
而言,它是一个存在的完全有效的对象

注意:
文件
对象称为“脚本”

但是当我运行脚本时,我收到空格上的错误

Runtime rt = java.lang.Runtime.getRuntime();
Process pp = rt.exec(script.getAbsolutePath());
我100%确信第一行工作正常。我收到的错误是下面的图像:(我将其显示在JOptionPane中。)

消除我的错误的最佳方法是什么?提前感谢


尝试的解决方案#1:
processpp=rt.exec(“\”+script.getAbsolutePath()+“\”)

当我使用
C:\Tools\IT Support\bookmark.htm

编辑:
到目前为止,最可靠的方法是使用

如果使用,Java只在空白处拆分命令

使用由call new StringTokenizer(命令)创建的StringTokenizer将命令字符串分解为标记,而无需进一步修改字符类别。然后,标记器生成的标记按相同顺序放置在新的字符串数组cmdarray中

另见

或者使用类似的方法:

ProcessBuilder pb = new ProcessBuilder("ln", "-s", "dir1/dir2", "my dir/dir2");
Process p = pb.start();
试一试

这是一个仅限Windows的解决方案

在您的情况下,可能是一个更好的解决方案,因为您需要“文件关联”机制

public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}

查找/删除错误的最佳方法是使用调试器。@Blaine我试过了,但没能找到答案。因此,我在这里发帖。使用
ProcessBuilder
。您可以找到这个问题的解决方案。在我看来,您上次发布的更新显示
script.getAbsolutePath()
没有返回完整路径。可能会检查一下。这并没有解决问题,我用结果更新了我的原始帖子。@Kryptos您是否尝试了
ProcessBuilder
方法?因为我看不到你问题的结果。如果没有,请尝试that@c.s.我刚才试过了。。我什么也得不到。。JFrame冻结,没有错误或任何东西。
public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}