个性化阅读
专注于IT技术分析

如何使用OCRA在Windows中从Ruby脚本创建可执行文件(.exe)

本文概述

你是创建脚本以简化生活的开发人员之一吗?巧合的是, 你喜欢Ruby吗?你有Windows吗?你需要知道有一种简单的方法可以执行脚本, 甚至在Windows中使用它们创建少量的控制台应用程序, 而不是通过控制台在控制台中手动执行脚本来重复工作。感谢一键式Ruby Application Builder, 我们正在谈论使用ruby脚本创建.exe(是的, 应用程序文件)文件。 OCRA从Ruby源代码构建Windows可执行文件!这些可执行文件是一个自解压, 自运行的可执行文件, 其中包含Ruby解释器, 你的源代码以及任何其他需要的ruby库或DLL。

在本文中, 你将学习如何在Windows中使用OCRA从ruby脚本轻松创建可执行文件。

要求

要创建我们的可执行文件, 我们将使用OCRA gem。要下载OCRA, 请在命令提示符(cmd.exe)中执行以下命令:

gem install ocra

在安装结束时, gem管理器将开始下载ocra, 并且gem(软件包)应能够在命令提示符下作为环境变量运行。

OCRA设置宝石

你可以在官方存储库或此处的文档中了解有关此软件包的更多信息。要检查OCRA是否已正确安装, 可以检查控制台中是否存在作为执行ocra –help的环境变量的OCRA。

或者, 你可以从rubygems.org/gems/ocra或github.com/larsch/ocra/releases/下载宝石。独立版本:从github.com/larsch/ocra/releases/获取ocrasa.rb。除了在Windows上可以正常工作的Ruby安装之外, 不需要任何其他操作。

实现

使用OCRA创建可执行文件非常简单, 可自定义并且非常容易执行。你需要做的只是将ocra作为环境变量(安装gem时会自动发生), 并知道要打包哪个文件。

在我们的示例中, 我们将创建以下脚本的可执行文件。该脚本的文件名是file-creator.rb并包含以下代码(它只是提示用户输入新文件的名称和内容):

# Declare start wizard method
def start_wizard
	prompt = "> "
	puts "Hi welcome to Text File Creator 2000"
	puts prompt + "To get started, give a name to your file (without extension)"
	filename = $stdin.gets.chomp

	puts prompt + "Awesome, now provide the content of the file !"
	content = $stdin.gets.chomp

	puts """
	Alright, so your filename will be #{filename}.
	And the content will be #{content}.  Do you want to continue (Yes[y]/No[n])?
	"""
	
	# Confirm the creation of the file
	response = $stdin.gets.chomp

	case response
		# If confirm, create the file
		when 'Y', 'y', 'j', 'J', 'yes', 'Yes'
			out_file = File.new("#{filename}.txt", "w")
			out_file.puts(content)
			out_file.close
			
			puts "Your file has been succesfully created, come back soon !"
		# If not, ask if he wants to continue or just exit
		when 'No', 'N', 'no'
			puts prompt + "Oh :(, do you want to start again (Yes[y]/No[n])?"
			
			response = $stdin.gets.chomp

			case response
				when 'Y', 'y', 'j', 'J', 'yes', 'Yes'
					start_wizard()
				when 'No', 'N', 'no'
					exit
			end
	end
end

# Start execution 
begin
	start_wizard()
# Write a log in case of error
rescue Exception => e
	File.open("except.log") do |f|
		f.puts e.inspect
		f.puts e.backtrace
	end
end

如你所见, 它是一个简单的控制台Ruby应用程序。现在创建可执行文件, 使用控制台(cmd.exe)导航到ruby脚本所在的文件夹(在本例中为Desktop \ Ruby):

cd C:\Users\sdkca\Desktop\ruby

现在, 使用以下命令继续该过程:

ocra file-creator.rb

这是创建脚本可执行文件的最简单命令, 因此足以在脚本所在的文件夹中创建可执行文件。

但是, 包装脚本时可能会遇到一个有趣的行为。 OCRA立即执行脚本以检查依赖性(.DLL和其他文件), 以使脚本尽可能独立, 并且显然, 如果脚本需要与用户交互(提示或要求的值输入), 则不需要OCRA执行脚本的原因不同。为防止这种行为, 你需要提供一个参数, 以使OCRA忽略脚本的执行:

ocra text-creator.rb --no-dep-run

现在执行命令并构建你的第一个可执行文件:

从Ruby脚本创建可执行文件

最后, 你可以在脚本所在的同一文件夹中测试创建的可执行文件:

脚本红宝石

提示与建议

  • 会自动检测DLL, 但仅包含Ruby安装中的DLL。

  • .rb文件将成为控制台应用程序。 .rbw文件将成为带窗口的应用程序(不会弹出控制台窗口)。或者, 使用”- 安慰” 要么 “- 视窗“选项。

  • 你可以在命令(ocra script.rb –icon = c:\ path-to \ icon.ico)中添加icon参数(以文件的路径作为值)来更改可执行文件的图标。

玩得开心 !

赞(0)
未经允许不得转载:srcmini » 如何使用OCRA在Windows中从Ruby脚本创建可执行文件(.exe)

评论 抢沙发

评论前必须登录!