gpt4 book ai didi

java - 在 Windows 中为 Ruby 和 RUN 设置 JAVA_HOME 环境变量

转载 作者:可可西里 更新时间:2023-11-01 09:35:32 25 4
gpt4 key购买 nike

虽然似乎有一堆与在 Windows 中设置 JAVA_HOME 变量相关的问题和答案,但我并不完全确定哪里出错了。

我已经按照各种不同的说明设置环境变量,当我在 ruby​​ 中检查环境变量时,我得到了

c:\Ruby192>ribirb(main):001:0> puts ENV['JAVA_HOME']"c:\progra~1\java\jdk1.6.0_20"=> nil

所以我一直将其解释为正在设置的环境变量,因为返回了我的 jdk 的路径,但是“nil”是什么?

echo %JAVA_HOME%

还返回我的 jdk 的路径。

当我运行时

gem install rjb

我明白了

extconf.rb:39:in '(main)': JAVA_HOME is not a directory. (RuntimeError)

当我查看 extconf.rb 文件时,果然,我得到了

javahome = ENV['JAVA_HOME']if javahome.nil? && RUBY_PLATFORM =~ /darwin/  javahome = `/usr/libexec/java_home`.stripendunless javahome.nil?  if javahome[0] == ?" && javahome[-1] == ?"    javahome = javahome[1..-2]  end  raise "JAVA_HOME is not directory." unless File.directory?(javahome)  pt = Path.new

所以据我所知,nil 意味着没有找到 JAVA_HOME,或者我没有将它指向正确的路径或其他什么。

我试过将 '\bin' 包含到路径的末尾,因为一些回复说这是必要的,但我得到了相同的结果。

有什么建议吗?

最佳答案

nil 只是 irb 向您返回计算表达式的结果,即 puts ...。 Puts 打印了你的表达式,但是 puts 的返回值为 nil。与ENV['JAVA_HOME']的内容无关。 Nil 只是意味着 puts 返回 nil,这是完全正常的。试试 puts "hello",你会看到同样的结果。

如果异常确实来自您粘贴的 extconf.rb 中的行。这意味着 File.directory?(javahome) 返回了 false。

我将从在 irb 中使用它开始。 IE。尝试:

File.directory?('c:\progra~1\java\jdk1.6.0_20')

...看看你得到了什么。这条路径看起来很像某种 MSDOS 崇拜者的速记。也许您想用 C:\Program Files\java\jdk1.6.0_20 之类的真实事物替换它,然后看看 File.directory?() 是否变得更快乐.

编辑:

也可以在 DOS 提示符下尝试 dir %JAVA_HOME%。确保您确实将 JAVA_HOME 指向了它应该指向的位置。

关于java - 在 Windows 中为 Ruby 和 RUN 设置 JAVA_HOME 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com