0

相关:在没有安装 jruby 的情况下在 tomcat 上执行 rake 任务

我正在尝试在没有安装 JRuby 的 Tomcat 服务器中运行 rake 任务。我正在使用莺创建一个战争文件。

使用链接问题的答案,我运行:

java -cp lib/jruby-core*.jar:lib/jruby-stdlib*.jar org.jruby.Main -S rake -T

这让我得到了错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main
Caused by: java.lang.ClassNotFoundException: org.jruby.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

ls lib得到我:

ems-gems-activerecord-jdbc-adapter-1.2.2-lib-arjdbc-jdbc-adapter_java.jar
gems-gems-jdbc-sqlite3-3.7.2-lib-sqlite-jdbc-3.7.2.jar
gems-gems-jruby-jars-1.6.8-lib-jruby-core-1.6.8.jar
gems-gems-jruby-jars-1.6.8-lib-jruby-stdlib-1.6.8.jar
gems-gems-jruby-rack-1.1.10-lib-jruby-rack-1.1.10.jar
gems-gems-json-1.7.5-java-lib-json-ext-generator.jar
gems-gems-json-1.7.5-java-lib-json-ext-parser.jar
gems-gems-therubyrhino_jar-1.7.4-jar-rhino-1.7R4.jar
gems-gems-warbler-1.3.6-lib-warbler_jar.jar
jruby-core-1.6.8.jar
jruby-rack-1.1.10.jar
jruby-stdlib-1.6.8.jar
ojdbc6.jar

打开jruby-core-1.6.8.jar文件,我可以看到确实有一个org/jruby/Main.class文件。

从文件列表中可以看出,没有jruby-completejar 文件,所以我无法从https://stackoverflow.com/a/9982556/684934运行命令

我做错了什么,现在有更好的方法吗?

4

1 回答 1

0

2 个月前我正在处理一个类似的问题,所以事情可能已经改变,但我需要在我的类路径中包含所有 jar,必须使用 bin 存根,并且必须设置 GEM_HOME 才能让一切正常工作。它可能更简单,但你引用的帖子对我也不起作用。

我实际上已经安装了 jruby,(但我只是用它来构建连接的类路径),所以我的设置是这样的:

cd /path/to/application/
export GEM_HOME=/path/to/application/gems
export CLASSPATH=$(jruby -e 'puts Dir["lib/*.jar"].join(":")')

RAILS_ENV=production java -cp $CLASSPATH org.jruby.Main bin/rake -T

同样有用的是,jruby-jars gem 可以包含在您的 gemfile 中以设置 warbler 包含的 jruby 版本(我使用gem 'jruby-jars', '1.7.0.preview2'的是 1.7.0 尚未发布)

于 2012-11-01T06:32:25.130 回答