在用于分发的 MacRuby 应用程序中,如何启动使用 macruby 调用 Ruby 脚本的 NSTask?

发布于 2024-11-25 07:15:18 字数 130 浏览 0 评论 0原文

我有一个 MacRuby 应用程序,在应用程序启动后,我想使用 NSTask 启动第二个进程。第二个进程是与应用程序捆绑在一起的 Ruby 脚本。我想使用编译到应用程序包中的 MacRuby macruby 解释器来启动它。我怎样才能做到这一点?

I have a MacRuby app, and after the app launches, I would like to launch a second process using an NSTask. The second process is a Ruby script bundled with the app. I would like to launch it using the MacRuby macruby interpreter that gets compiled into the app bundle. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月流歌 2024-12-02 07:15:18

首先,从ruby脚本中删除.rb扩展名,否则如果使用macruby_deploy编译macruby项目,它将被编译为rbo文件。脚本文件应将其作为第一行:

#!/usr/bin/env ruby

确保将脚本复制到 Resources 文件夹。

然后创建并调用 NSTask:

path = NSBundle.mainBundle.pathForResource('test', ofType:nil)
task = NSTask.alloc.init
task.setLaunchPath(path)

task.launch

First, remove the .rb extension from the ruby script, otherwise if you compile the macruby project using macruby_deploy, it will be compiled to rbo file. The script file should have this as its first line:

#!/usr/bin/env ruby

Make sure the script will be copied to Resources folder.

Then create and call a NSTask:

path = NSBundle.mainBundle.pathForResource('test', ofType:nil)
task = NSTask.alloc.init
task.setLaunchPath(path)

task.launch
热风软妹 2024-12-02 07:15:18

那么,你尝试过只调用 NSTask 吗?

NSTask.launchedTaskWithLaunchPath('script.rb', nil)

然后在 Xcode 中单击以确保 script.rb 在执行期间就位。

Well, have you tried just calling NSTask?

NSTask.launchedTaskWithLaunchPath('script.rb', nil)

Then click around in Xcode to make sure that script.rb is in place during execution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文