当前位置: 首页 > 面试题库 >

OS X的Java执行路径中的空格

丁昌翰
2023-03-14
问题内容

在OS X上,我试图执行.exec某些内容,但是当路径包含空格时,它将不起作用。我尝试用引号将路径引起来,转义空格,甚至使用\ u0020。

例如,这有效:

Runtime.getRuntime().exec("open /foldername/toast.sh");

但是,如果有空间,这些都不起作用:

Runtime.getRuntime().exec("open /folder name/toast.sh");

Runtime.getRuntime().exec("open \"/folder name/toast.sh\"");

Runtime.getRuntime().exec("open /folder\\ name/toast.sh");

Runtime.getRuntime().exec("open /folder\u0020name/toast.sh");

有想法吗?

编辑:转义的反斜杠…仍然没有用。


问题答案:

在Sun的论坛上有关于此问题的摘要…似乎是一个非常普遍的问题,不仅限于OSX。

该主题的最后一篇文章总结了建议的解决方案。本质上,使用Runtime.execString[]数组的形式:

String[] args = new String[] { "open", "\"/folder name/toast.sh\"" };

或(论坛建议也可以)

String[] args = new String[] { "open", "folder name/toast.sh" };


 类似资料:
  • 在Mac中安装了Java7。 http://download.oracle.com/otn-pub/java/jdk/7u7-b10/jdk-7u7-macosx-x64.dmg 我从Oracle下载了安装程序,安装成功了。但我在/系统/库里找不到

  • 问题内容: 如何执行路径名中包含空格的Java System(shell)命令? 我尝试将引号和反斜杠()放在一起,但这不起作用。 问题答案: 到目前为止,最可靠的方法是使用Runtime.exec(String [] cmdarray) 。 如果使用Runtime.exec(String command) ,则Java仅在空白处分割命令。 使用调用new StringTokenizer(comm

  • 问题内容: 我正在使用python进行文件操作。 我有一个文件路径为: 当我使用python打开文件时,它说: 但是,该文件存在于驱动器上。 可能是因为窗口包含空格,所以无法正确获取“ SEM 2”。 如何在窗口路径的路径中处理此类空格? 问题答案: 路径中的空格没有问题,因为您没有使用“外壳”来打开文件。这是Windows控制台上的一个会话来证明这一点。你做错了什么

  • 我正在尝试运行一个OSX命令,它是plutil,用于将某些plist转换为json格式。我在terminal中使用的命令是 这个路径名为白色空格的命令在我的终端中运行良好,撇号(“)覆盖了路径名,但问题是在java的下面是我编写的代码 如果我运行此代码,它会给我一个错误 我也试过了, 在命令字符串中输入撇号 按照我的几个站点的建议更改数组字符串中的命令 但没有一个奏效。 如果我在安排命令时做错了什

  • 问题内容: 我使用Go在各种平台上编译了一个程序,并通过调用相对路径或仅通过其名称(如果它在PATH变量中)来运行它。 是否可以找出可执行文件在哪里? 说,我的程序称为“ ()”。我可以运行,(如果它在PATH中)。 我尝试使用,我想我应该检查程序名称是否包含除“ foo”以外的其他内容。如果是,请使用,如果否,请使用(我找不到函数名,有一个通过PATH查找以检查程序在哪里的函数)。 问题答案:

  • 我目前正在尝试将我们的prometheus lib迁移到spring Boot2.0.3版本。我们使用普罗米修斯的自定义路径,到目前为止,我们使用一个工作来确保这一点。由于信息endpoint和健康endpoint可能有自定义路径,因此使用。我尝试指定,但它仍然只能在下访问。 如何使用自定义路径或普罗米修斯? 我们使用以下库启用prometheus(我们的build.gradle的片段) 我们还使