用rubyscript2exe 把一个ruby 程序变成exe 文件
1,下载rubyscript2exe.rb 文件
http://github.com/cowlibob/rubyscript2exe.git ,从这里下载的能用。
其它的有个错误
修改也可以: 621:
$0.replace(File.expand_path("./init.rb")) 改成 $_0 = File.expand_path("./init.rb")
2, 直接运行 ruby rubyscript2exe.rb xx.rb
........waiting
你就能得到一个xx.exe
这是我写一个确定xml file 的header encoding 和文件内部encoding 是否相符的程序
里面用到
require 'csv'
require 'nokogiri'
require 'UniversalDetector'
所以先要安装一下
windows
gem install nokogiri
gem install rchardet
linux
sudo apt-get install libxslt1-dev libxml2-dev
sudo gem install nokogiri
sudo gem install rchardet
直接上文件:
require 'rubygems'
require 'csv'
require 'nokogiri'
require 'rchardet'
if(ARGV.size ==0 || (!File.directory? ARGV[0]))
puts "Please give me a folder url."
url=gets.strip
if(!File.directory? url)
puts "Please give me a right folder url."
exit
end
else
url = ARGV[0]#"/home/dermot/screenshots/clientA/projectA/"
end
File.delete(url.split('/').join('_')+".csv") if File.exist?(url.split('/').join('_')+".csv")
csv_file = CSV.open(url.split('/').join('_')+".csv","w")
csv_file << ["filename","isWellFormed","bomEncoding","headerEncoding","matched"]
def get_info(url)
str = File.read(url)
bom_encoding = CharDet.detect(str)["encoding"]
#is_bom = get_bom(str)
doc=Nokogiri::XML.parse(str)
header_encoding = doc.encoding
#doc.xpath("//p").collect(&:text).to_s
matched = (bom_encoding.include?(header_encoding)) ? "yes" : "no"
is_well_formed = confirm_form(str)
return is_well_formed,bom_encoding,header_encoding,matched
end
def get_bom(data)
if data[0,3] == "\xEF\xBB\xBF":
# EF BB BF UTF-8 with BOM
#@result = {"encoding"=> "UTF-8", "confidence"=> 1.0}
return "UTF-8_BOM"
elsif data[0,4] == "\xFF\xFE\x00\x00":
# FF FE 00 00 UTF-32, little-endian BOM
#@result = {"encoding"=> "UTF-32LE", "confidence"=> 1.0}
return "UTF-32LE_BOM"
elsif data[0,4] == "\x00\x00\xFE\xFF":
# 00 00 FE FF UTF-32, big-endian BOM
#@result = {"encoding"=> "UTF-32BE", "confidence"=> 1.0}
return "UTF-32BE_BOM"
elsif data[0,4] == "\xFE\xFF\x00\x00":
# FE FF 00 00 UCS-4, unusual octet order BOM (3412)
#@result = {"encoding"=> "X-ISO-10646-UCS-4-3412", "confidence"=> 1.0}
return "X-ISO-10646-UCS-4-3412_unusual_BOM"
elsif data[0,4] == "\x00\x00\xFF\xFE":
# 00 00 FF FE UCS-4, unusual octet order BOM (2143)
#@result = {"encoding"=> "X-ISO-10646-UCS-4-2143", "confidence"=> 1.0}
return "X-ISO-10646-UCS-4-2143_unusual_BOM"
elsif data[0,2] == "\xFF\xFE":
# FF FE UTF-16, little endian BOM
#@result = {"encoding"=> "UTF-16LE", "confidence"=> 1.0}
return "UTF-16LE_BOM"
elsif data[0,2] == "\xFE\xFF":
# FE FF UTF-16, big endian BOM
#@result = {"encoding"=> "UTF-16LE", "confidence"=> 1.0}
return "UTF-16LE_BOM"
end
return "no"
end
def confirm_form(str)
begin
Nokogiri::XML(str){|config| config.options=Nokogiri::XML::ParseOptions::STRICT}
rescue
return "no"
end
return "yes"
end
def walk_dir(path,csv_file )
dir = Dir.new(path)
dir.find_all do |file|
if (file != "." && file != "..")
url = path+File::SEPARATOR+file
if (File.directory? url)
walk_dir(url,csv_file )
elsif (!(/\.xml$/=~file).nil?)
csv_file << [url]+get_info(url)
end
end
end
end
walk_dir(url,csv_file )
csv_file.close
puts "finished"
想做成 gui的,可是没找到ruby类似filedialog 的组件,有知道的可以告诉下,3xu~!
分享到:
相关推荐
总的来说,“修改的rubyscript2exe”是一个实用的工具,旨在帮助Ruby开发者将他们的程序打包成Windows EXE文件,以便更广泛地分发和执行。它对旧版本Ruby的支持显示了其对兼容性的重视,而核心脚本`rubyscript2exe....
标题“rubyscript2exe-0.5.3.tar.gz”揭示了我们正在处理一个用于Ruby脚本的工具,版本号为0.5.3,它被打包成一个tar.gz文件。这种类型的文件通常在Unix或Linux环境中创建,用于归档和压缩多个文件。tar.gz格式是tar...
用于打包ruby代码生成EXE程序,最新的GEM包ocra-1.31.gem
ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件
一个将ruby脚本打包成二进制可执行文件的工具,包含源码和一个编译完成的二进制文件!支持跨平台编译,在windows、macOS、linux上均可以成功编译运行!包里的二进制文件是在ubuntu16.04中编译成功的版本!
rubyinstaller-2.7.0-1-x64.exe安装包,官网下载比较慢,故上传此安装包供其他人下载使用。
5. **生成EXE**: Exerb会分析你的配置文件,将Ruby解释器、你的代码和所有依赖一起打包进一个独立的EXE文件中。 6. **测试EXE**: 最后,你需要在不同的机器上测试生成的EXE文件,确保它能在没有Ruby环境的系统上...
它将Ruby解释器、标准库和其他必需组件打包成一个单一的可执行文件,使得开发者无需复杂配置即可在Windows上运行Ruby程序。`rubyinstaller-devkit-3.0.0-1-x64.exe` 是RubyInstaller的特定版本,其中包含了Ruby ...
4. **exe bundlers**: 如`pkg`或` rubyscript2exe`,它们可以将Ruby脚本和所有依赖一起打包成Windows的.exe文件。不过,这些工具可能不支持最新的Rails或Ruby版本,使用时需要注意兼容性问题。 5. **Docker**: 虽然...
src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
2. 安装Ruby:运行解压后的"rubyinstaller-devkit-3.0.2-1-x64.exe"文件,按照安装向导的指示进行。在安装过程中,确保勾选“Add Ruby executables to your PATH”选项,这样可以将Ruby命令行工具添加到系统环境变量...
ruby186-25 for windows
Learn the principles behind object-oriented programming and within a few chapters create a fully functional Ruby application. You'll also gain a basic understanding of many ancillary technologies such...
《Ruby on Rails Enterprise Application Development》这本书由Elliot Smith和Rob Nichols共同编写,由Packt Publishing出版。该书旨在为读者提供一个完整的Ruby on Rails商业应用程序开发过程的指导,从规划到编程...
跟其它界面开发包不同的是,Ruby-GNOME2不仅仅提 供界面控件,它提供了整个GNOME 2.0的环境,包含Ruby/GLib2、Ruby/ATK、Ruby/Pango、Ruby/GTK2、Ruby/GnomeCanvas2、Ruby /GNOME2、Ruby/GnomeVFS、Ruby/GtkHtml2、...
《Ruby on Rails Enterprise Application Development》是一本专注于Ruby on Rails框架的书籍,主要讲述了如何利用Ruby on Rails开发企业级应用程序。本书作者是Elliot Smith和Rob Nichols,他们在IT行业有着丰富的...
目前看到很多资源都很老了,都是4.2版的,于是就决定发...特点:速度相对快点,生成的exe体积要小些,经尝试只有用exerb的mkexy功能才能生成一个完美的gui程序,exy文件中还可以设置图标、版本信息和改变文件的编码等。