0

関連 : jruby をインストールせずに tomcat で爆発した war で rake タスクを実行する

JRuby がインストールされていない Tomcat サーバーで rake タスクを実行しようとしています。warbler を使用して war ファイルを作成しています。

リンクされた質問への回答を使用して、次のように実行しました。

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-completeように、jar ファイルがないため、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 に答える