java runtime for mac_Mac命令中的Java命令Runtime.getRuntime().exec()

我使用的是Mac OS Lion,

java版本为1.6.0_26

我正在为Java制作一个小型应用程序,并为用户提供主菜单,因此他可以选择多个选项.

其中之一是使用.pkg安装应用程序

使用这些命令一切正常:

File instFolder = new File(System.getProperty("user.dir") + "/foldername/appInstaller.pkg");

String s = "open "+ instFolder.toString();

Process p = Runtime.getRuntime().exec(s);

然后我意识到当foldername有空格或者我把这个带有所需子文件夹的java文件复制到名为“NO NAME”的USB笔式驱动器(或带空格的某个名称)时会出现问题.

因为s会变成:

open / Volumes / NO NAME / foldername / appInstaller.pkg

要么

open / Users / user1 / Desktop / folder name / appInstaller.pkg

因此,当您运行p进程时,该命令将在路径上出现第一个空格的位置完成

open / Volumes / NO

要么

打开/ Users / user1 / Desktop /文件夹

为了解决这个问题,我改变了s定义,如下所示:

String s = "open "+ "\"" + instFolder.toString() + "\"";

它停止了正常工作.奇怪的是,如果我复制s值(在创建s变量之后)并将其粘贴到终端中,它可以工作:

打开“/ Users / user1 / Desktop / folder name / appInstaller.pkg”

但是从Java运行它不起作用.

请问你能帮帮我吗?

谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值