gpt4 book ai didi

maven - 从 Java 类路径加载 JRuby 脚本

转载 作者:行者123 更新时间:2023-12-05 05:28:14 26 4
gpt4 key购买 nike

我有一个简单的 Maven 项目,如下所示:

  • $PROJ/src/main/java/path-to-classes/InstallerLoader.java
  • $PROJ/src/main/resources/installer.rb

这是 InstallerLoader.java 的样子:

package com.mycompany;

import org.jruby.embed.ScriptingContainer;
import org.jruby.embed.PathType;

public class InstallerLoader {
public static void main(String[] args) {
System.out.println("Running..");
ScriptingContainer container = new ScriptingContainer();
container.runScriptlet(PathType.CLASSPATH, "/installer.rb");
}
}

这就是 installer.rb 的样子:

require 'optparse'

options = { :verbose => false}
optparse = OptionParser.new do |opts|
opts.on('-v', '--verbose', 'Verbose output') do
options[:verbose] = true
end
end

optparse.parse!

puts options[:verbose]

当我尝试运行它时,它似乎没有加载 installer.rb。没有堆栈跟踪或任何其他指示未加载 installer.rb 的信息。我在这里做错了什么?

最佳答案

类路径文件名不应以 / 开头。它应该只是:

container.runScriptlet(PathType.CLASSPATH, "installer.rb");

这是一个 quirky undocumented aspect Java 的 ClassLoader API(当然,ScriptingContainer 在幕后使用它从类路径加载文件)。

关于maven - 从 Java 类路径加载 JRuby 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977058/

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