Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
这是一种分发复合Ruby脚本的方法,比如Python中PHP/JAR中的PHAR、Java/EGG中的PHAR?_Ruby - Fatal编程技术网

这是一种分发复合Ruby脚本的方法,比如Python中PHP/JAR中的PHAR、Java/EGG中的PHAR?

这是一种分发复合Ruby脚本的方法,比如Python中PHP/JAR中的PHAR、Java/EGG中的PHAR?,ruby,Ruby,在我的工作中,通常会将脚本分发给公司的其他部门、承包商等。如果脚本是单个.rb/.php/.jar/.py文件,那么很容易:我所需要的就是以某种方式将该文件提供给一个人,他只需双击该文件即可执行。但是,如果脚本很复杂(很大),从程序员的角度来看,将其作为单个文件编写并不是很好——因此,复杂的脚本被创建为许多文件,其中包含启动脚本的“主”文件。向非程序员分发这样的脚本有什么问题:他们需要复制包含所有文件的整个文件夹,找到主文件并双击它。对于非程序员来说,这比双击单个文件要困难得多:(.真的 PHP

在我的工作中,通常会将脚本分发给公司的其他部门、承包商等。如果脚本是单个.rb/.php/.jar/.py文件,那么很容易:我所需要的就是以某种方式将该文件提供给一个人,他只需双击该文件即可执行。但是,如果脚本很复杂(很大),从程序员的角度来看,将其作为单个文件编写并不是很好——因此,复杂的脚本被创建为许多文件,其中包含启动脚本的“主”文件。向非程序员分发这样的脚本有什么问题:他们需要复制包含所有文件的整个文件夹,找到主文件并双击它。对于非程序员来说,这比双击单个文件要困难得多:(.真的

PHP、Java和Python为这种分发问题提供了一种解决方案。我可以将所有文件打包到“.phar”、“.jar”或“.egg”文件中,并将此文件推送到最终用户手中——双击它将执行一个脚本(或者在控制台中输入它的名称,如果脚本是命令行的话)。与单个脚本文件一样简单

Ruby是否存在类似的情况?我已经检查了python“egg”中非常常见的“gem”机制,但“gem”似乎不适合作为“脚本”执行,它们仅用于安装:(


有什么提示或想法吗?

您可以将JRuby与Rawr结合使用:


引用文档:“使用Rawr,一个简单的预生成的配置文件将代码转换为可执行的jar、Windows的.exe和OS X的.app。”

谢谢。这是一个可能的解决方案,但使用的许多抽象层让我有点害怕:)。这种解决方案可能会导致在开发人员计算机上创建和调试ruby脚本以及生成的java可执行文件将是两种截然不同的东西,具有不同的行为:)这可能会有所帮助: