首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby是跨平台的Java吗?

Ruby是跨平台的Java吗?
EN

Stack Overflow用户
提问于 2009-08-21 04:37:36
回答 5查看 7.2K关注 0票数 10

您可以编译Java应用程序,并在Java虚拟机所在的任何机器上运行它,而不依赖底层硬件。

由于Ruby on Rails是构建在Ruby之上的,所以我担心在任何环境中用Ruby构建软件是否是相同的。至少有适用于Windows、Linux和Mac的版本。

那么,对于Ruby应用程序和Java应用程序,您能做同样的事情吗?换句话说,Ruby是如何跨平台的?

编辑:--我指的是Ruby本身,而不是运行在另一个虚拟机中的Ruby,比如jRuby。我应该期望Ruby的跨平台开发要比Java开发的更多,还是两者几乎相同?

EN

回答 5

Stack Overflow用户

发布于 2009-08-21 04:52:46

Ruby是一种脚本语言,它在运行时由Ruby解释器解释,Ruby代码被解释并转换为机器级语言,即汇编语言。谈到平台独立性,如果安装了依赖于平台的ruby解释器,您可以在Linux、Windows或Mac等任何平台上运行Ruby代码。

与Java一样,它被编译并转换为中间字节类,这个字节类由平台相关的JVM ()解释。

这样,您可以将Ruby源文件视为可以在任何平台上运行的字节类,其中一个不同的字节类已经编译,但是ruby源文件将在运行时编译。

票数 14
EN

Stack Overflow用户

发布于 2009-09-02 23:41:16

Ruby与底层平台绑定得相当紧密。当涉及进程/线程机制以及各种形式的IPC时,情况尤其如此。与目录分隔器等“琐碎的”挑战相比,这些都是更重要的挑战。我非常肯定,比方说,Windows Ruby运行时和Linux运行时之间没有对等关系。

对于Java,IPC/process/线程模型在运行JVM的所有平台上都是相同的。

票数 6
EN

Stack Overflow用户

发布于 2016-04-21 11:57:32

Java是跨平台的。并不是这样,它让人想起“噢,我们有windows用户,让我们试着让它正常工作”。

在Java中,在多年的大量使用中,我遇到的跨平台问题还不到10个。这些领域,显然是棘手的领域。系统/文件系统细节。

在ruby中,即使在执行第一个rails教程和其他教程(https://github.com/twbs/bootstrap-sass/issues/696)时,我也遇到了问题。我不认为红宝石跨台。该平台依赖于大量的依赖项,每当其中一个人使用任何特定于平台的依赖项时,整个平台就会中断。即参见此错误:ExecJS::RuntimeError在Windows上尝试遵循ruby教程

我还继承了一个巨大的红宝石项目,它依赖于capistrano,webkit,bcrypt,这些都需要开发构建工具包和本地构建。它不只是起作用。看看这里有麻烦的人:https://github.com/codahale/bcrypt-ruby/issues/116这很有趣,他们一度建议有人跟踪一个日文:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1310107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档