我一直在寻找使用Java运行时运行外部程序的方法.这很好,例如:
<code>String[] cmd = {"mkdir", "test"}; Runtime.getRuntime().exec(cmd); </code>
按照您的预期创建一个新目录.现在,从Mac中的bash窗口,我可以这样写:
<code>love testgame </code>
在名为testgame的文件夹上运行“Love”游戏引擎.现在,这个工作的原因是因为我把爱“别名”称为爱可执行文件.我有一种感觉,这就是以下不起作用的原因:
<code>String[] cmd = {"love", "/Users/mtc06/testgame"}; Runtime.getRuntime().exec(cmd); </code>
这也不是(对于那些想知道的人):
<code>String[] cmd = {"/bin/bash", "love", "/Users/mtc06/testgame"}; Runtime.getRuntime().exec(cmd); </code>
毫无疑问,这可能是我的一些Java白痴,或者与混叠的工作方式发生冲突.我把它交给你尊敬的知识分子,所以!
更新:这也不起作用:
<code>String[] cmd = {"/bin/sh", "/Applications/love", "/Users/michaelcook/Desktop/Playout"}; Runtime.getRuntime().exec(cmd); </code>
我收到的错误是运行时生成的进程的127.无论我在哪里研究它,我都会把它当作“命令未找到”.
解决方法:
我怀疑你遇到的问题是用于查找可执行文件的路径.这取决于您是否使用OSX应用程序或unix cmd
如果是unix cmd(或使用OSX应用程序的Unix部分,例如/Applications/AppName.app/Contents/MacOS/AppName),那么有两种方法可以解决这个问题
>将完整路径放在Java代码中的可执行文件中,例如
String [] cmd = {“/ full / absolute / path / to / love”,“/ Users / mtc06 / testgame”};
>更改路径以包含可执行文件.这取决于java启动的方法.
a)如果从命令行运行java,则将可执行文件的目录添加到PATH环境变量中.
b)如果从Finder运行java程序,则必须在?/ MacOSX / environment.plist中更改路径,例如添加/ Users / mark / bin
<code> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PATH</key> <string>/Users/mark/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/usr/libexec/binutils:</string> </dict> </plist> </code>
如果应用程序是OSX应用程序,则需要使用open启动它,因此命令行为
<code>open -a love.app "/Users/mtc06/testgame" </code>
所以Java命令是(未测试)
<code>String[] cmd = {"/usr/bin/open", "-a" , "love.app", "/Users/mtc06/testgame"}; </code>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!