【问题标题】:unable to install java gem for jruby无法为 jruby 安装 java gem
【发布时间】:2015-06-04 10:00:23
【问题描述】:

我需要为我的 jruby 包安装 java gem。 以下是它给我的错误。

C:\Users\abcd>jruby -v

jruby 1.7.19 (1.9.3p551) 2015-01-29 20786bd on Java HotSpot(TM) 64-Bit Server VM 1.8.0_31-b13 +jit [Windows 7-amd64]

C:\Users\abcd>jgem 安装 java

不支持 io/控制台; tty 不会被操纵 错误:安装java时出错: java 需要 Ruby 版本 >= 2.1.0。

当我说时从 irb 控制台 需要'java' 这总是给我“假”

【问题讨论】:

    标签: ruby-on-rails ruby rubygems jruby


    【解决方案1】:

    如果您查看https://github.com/vanruby/java/blob/master/java.gemspec,您会看到 ruby​​ 版本必须是 >= 2.1.0

    这和你得到的错误一样。

    jruby 1.7.19只有两种模式:1.81.9模式。

    如果您想要 ruby​​ 模式 >= 2.x,则需要迁移到 jruby-9k,尚未发布,但可以使用 pre-2 版本进行测试:

    http://jruby.org/2015/04/28/jruby-9-0-0-0-pre2.html

    jruby 9k pre2 有 ruby​​ 模式 2.2.2 并且安装会很好:

    jruby -v

    jruby 9.0.0.0.pre2 (2.2.2) 2015-04-28 2755ae0 Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [Windows 7-amd64]

    jgem ins -l java-0.0.2.gem

    Successfully installed java-0.0.2 1 gem installed

    请注意,我在本地下载了 gem,因为我有一些内部网络限制。

    【讨论】:

    • 我已经尝试下载以下 2 个版本 JRuby 9.0.0.0.pre2 Windows Executable (x64) (md5, sha1) JRuby 9.0.0.0.pre2 Binary .zip (md5, sha1) 问题是他们没有所需的所有文件和文件夹,他们没有 gem 或 jgem.bat 文件来更新 gem。
    • 此外,它总是说 C:\jruby-9.0.0.0.pre2\bin>jruby -v 错误:找不到或加载主类 org.jruby.Main 我也尝试了以下C:\jruby-9.0.0.0.pre1\bin>jruby -v 错误:无法找到或加载主类 org.jruby.Main 任何帮助?
    • 我当然可以帮忙。如果您的 Windows 服务器上安装了 java8、ant 和 ivy,请查看我制作的这个小型 jruby 发行版。 github.com/cmichon/jruby-ant 。要在 9k-pre2 模式下安装它,只需输入 ant,然后在提示符处输入“9”。我在里面有 jgem。
    • 嘿...我不喜欢那些蚂蚁和常春藤,你能压缩代码,上传并在这里给我一个链接吗?
    • @SrichandarKarpuram 也许你可以试试s3.amazonaws.com/jruby.org/downloads/9.0.0.0.pre2/… 而不是我自己的发行版?像这样执行 jgem:java -jar jruby-complete-9.0.0.0.pre2.jar -S jgem。 jirb 也是如此:java -jar jruby-complete-9.0.0.0.pre2.jar -S jirb
    【解决方案2】:

    java gem 是围绕 Java 的一个“笑话”......另一方面,JRuby 为您提供对完整底层 Java API 的“严肃”访问,实际上在内部已经有一个 require 'java'(自 JRuby 1.7.x 以来,它始终默认加载,因此 $LOADED_FEATURES 将始终加载 java)。

    虽然这听起来可能不是一个答案 - 不要在 JRuby 下使用 gem 'java' 它的作者可能从未尝试过 JRuby 并且没有意识到它会发生冲突并给用户带来困难(通常最好避免 Ruby 主义者开玩笑围绕 Java,因为它们偶尔会产生非线程安全的代码)。

    【讨论】:

      【解决方案3】:

      要在您的系统上安装 JRuby,请为您的系统安装最新的 JRuby 二进制文件,将其解压缩,然后在终端窗口或命令窗口的命令行中使用它

      【讨论】:

      • 我已经在我的系统上安装了最新的 JRuby 二进制文件。所以,现在告诉我是否有其他选择
      • 一旦您下载了 JRuby 安装并且它位于目录 /opt/jruby 中,您需要将 /opt/jruby/bin 添加到 $PATH 环境变量的末尾。如果您再次发表此评论,如果不尝试此评论,如果它不工作再次发表评论,我会尝试回复您
      • @SrichandarKarpuram 这不是最新的 jruby 二进制版本。您需要升级到 jruby-9k-pre2。请看我的回答。
      • 我也将它们添加到系统路径变量中,但我仍然遇到问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多