`
djsl6071
  • 浏览: 595442 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Ruby转Exe -- Exerb研究

阅读更多
关键字:   ruby exe    

1. Exerb简介

Exerb是一个将ruby脚本程序(.rb)转换成Windows应用程序(.exe)的软件。目前最新版本4.1.0,下载地址:http://downloads.sourceforge.jp/exerb/23470/exerb-4.1.0.zip


2.安装

把下载的zip文件解压,进入exerb目录,运行ruby setup.rb。这时exerb和mkexy命令将会加入ruby/bin目录中。

3.ruby -> exe

先来个最简单的

hello.rb

 

  1. puts 'Exerb'

运行exerb hello.rb,生成一个hello.exe文件,OK。

下面写个GUI程序,使用wxRuby类库。

 

hello_wx.rb

 

  1. require 'wxruby'
  2. include Wx
  3. class MyFrame < Frame
  4.    def initialize(title)
  5.      super(nil, -1, title)
  6.      Button.new(self, -1, "Hello, I'm a Button")
  7.    end
  8. end
  9. class MyApp < App
  10.    def on_init
  11.      frame = MyFrame.new('Simple wxRuby App')
  12.      frame.show
  13.    end
  14. end
  15. a = MyApp.new
  16. a.main_loop

exerb hello_wx.rb,生成hello_wx.exe,却不能运行。因为exe并没有把程序所需的类库打包进来,这时候就得执行mkexy命令。

mkexy hello_wx.rb,生成hello_wx.exy文件

hello_wx.exy

  1. # Generated by mkexy
  2. # on 2007-01-31 23:50
  3. general:
  4.   startup: hello_wx.rb
  5.    core: cui
  6.    kcode: none
  7. file:
  8.    hello_wx.rb:
  9.    rbconfig.rb:
  10.      file: c:/ruby/lib/ruby/1.8/i386-mswin32/rbconfig.rb
  11.    rubygems/rubygems_version.rb:
  12.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/rubygems_version.rb
  13.    rbconfig/datadir.rb:
  14.      file: c:/ruby/lib/ruby/site_ruby/1.8/rbconfig/datadir.rb
  15.    rubygems/user_interaction.rb:
  16.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/user_interaction.rb
  17.    forwardable.rb:
  18.      file: c:/ruby/lib/ruby/1.8/forwardable.rb
  19.    digest.so:
  20.      file: c:/ruby/lib/ruby/1.8/i386-mswin32/digest.so
  21.      type: extension-library
  22.    digest/sha2.so:
  23.      file: c:/ruby/lib/ruby/1.8/i386-mswin32/digest/sha2.so
  24.      type: extension-library
  25.    rational.rb:
  26.      file: c:/ruby/lib/ruby/1.8/rational.rb
  27.    date/format.rb:
  28.      file: c:/ruby/lib/ruby/1.8/date/format.rb
  29.    parsedate.rb:
  30.      file: c:/ruby/lib/ruby/1.8/parsedate.rb
  31.    time.rb:
  32.      file: c:/ruby/lib/ruby/1.8/time.rb
  33.    rubygems/source_index.rb:
  34.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb
  35.    rubygems/version.rb:
  36.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb
  37.    rubygems/specification.rb:
  38.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/specification.rb
  39.    openssl.so:
  40.      file: c:/ruby/lib/ruby/1.8/i386-mswin32/openssl.so
  41.      type: extension-library
  42.    openssl/bn.rb:
  43.      file: c:/ruby/lib/ruby/1.8/openssl/bn.rb
  44.    openssl/cipher.rb:
  45.      file: c:/ruby/lib/ruby/1.8/openssl/cipher.rb
  46.    openssl/digest.rb:
  47.      file: c:/ruby/lib/ruby/1.8/openssl/digest.rb
  48.    openssl/buffering.rb:
  49.      file: c:/ruby/lib/ruby/1.8/openssl/buffering.rb
  50.    fcntl.so:
  51.      file: c:/ruby/lib/ruby/1.8/i386-mswin32/fcntl.so
  52.      type: extension-library
  53.    openssl/ssl.rb:
  54.      file: c:/ruby/lib/ruby/1.8/openssl/ssl.rb
  55.    openssl/x509.rb:
  56.      file: c:/ruby/lib/ruby/1.8/openssl/x509.rb
  57.    openssl.rb:
  58.      file: c:/ruby/lib/ruby/1.8/openssl.rb
  59.    rubygems/gem_openssl.rb:
  60.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_openssl.rb
  61.    rubygems/security.rb:
  62.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/security.rb
  63.    rubygems/custom_require.rb:
  64.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb
  65.    rubygems.rb:
  66.      file: c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb
  67.    ubygems.rb:
  68.      file: c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb
  69.    wxruby.so:
  70.      file: c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt/wxruby.so
  71.      type: extension-library

该文件把hello_wx.rb所需的类库文件都包含进来了。

运行exerb hello_wx.exy,这时候生成的hello_wx.exe是可以执行的,问题是打开文件的同时会打开一个控制台窗口,要解决这个问题,就得修改hello_wx.exy文件,把cui改成gui。

 

  1. general:
  2.   startup: hello_wx.rb
  3.   core: gui #cui
  4.   kcode: none

再次运行exerb hello_wx.exy,生成一个红宝石图标的exe文件,OK!

另外,exy文件中还可以设置图标和版本信息。不再赘述。配置属性如下:

  1. resource:
  2. icon:
  3. - width : 16
  4. height: 16
  5. color : 4
  6. file : your_ico.ico
  7. - width : 32
  8. height: 32
  9. color : 4
  10. file : your_ico.ico
  11. version:
  12. file_version_number : 1.2.3.4
  13. product_version_number: 5.6.7.8
  14. comments : Comments Field
  15. company_name : Company Name Field
  16. legal_copyright : Legal Copyright Field
  17. legal_trademarks : Legal Trademarks Field
  18. file_version : File Version Field
  19. product_version : Product Version Field
  20. product_name : Product Name Field
  21. file_description : File Description Field
  22. internal_name : Internal Name Field
  23. original_filename : Original Filename Field
  24. private_build : Private Build Field
  25. special_build : Special Build Field
 
分享到:
评论

相关推荐

    exerb 5.3.0

    3. 打包为exe:使用Exerb命令行工具,指定你的Ruby脚本和相关选项,如`exerb your_script.rb`,这将会生成一个可执行文件。 4. 配置依赖:如果您的程序依赖于其他的Ruby库,需要确保这些库在打包过程中被正确处理。...

    基于net的超市管理系统源代码(完整前后端+sqlserver+说明文档+LW).zip

    功能说明: 环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc。。。

    LABVIEW程序实例-公式节点.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    大米商城开源版damishop(适合外贸)

    大米外贸商城系统 简称damishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换,集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,API导入产品方便对接其他系统(带json示例数据)。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer install 打开安装向导安装 http://您的域名/install 特色 1、缓存层增加时间与批量like删除 2、API产品导入方便对接其他系统 3、增加控制台命令行,命令行生成语言翻译包 4、后台一键开启自动翻译模式,支持全球133中语言,由于google代理翻译需要收费,这个功能需要付费。 5、可选购物车与ajax修改购物车产品 6、一键结算checkout 7、增加网站前台自定义路由 方便seo 更新日志 v3.9.7 集成鱼码支付接口,方便个人站长即使收款到账使用 v3.9.3 更新内容 1:增加ueditor与旧编辑器切换 2:增加可视化布局插

    LABVIEW程序实例-通过全局变量接收数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    LABVIEW程序实例-日历控件.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频.zip

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频

Global site tag (gtag.js) - Google Analytics