. , , - , :
ruby myapp.rb
script lib java-, script. , :
package livesync;
import org.jruby.Ruby;
import org.jruby.RubyRuntimeAdapter;
import org.jruby.javasupport.JavaEmbedUtils;
import java.util.ArrayList;
public class LiveSyncRunner {
public static void main(String[] args) {
String[] jrubyArgs = new String[3 + args.length];
jrubyArgs[0] = "-e";
jrubyArgs[1] = "require 'livesync/livesync_wrapper'";
jrubyArgs[2] = "livesync";
for (int i = 0; i < args.length; ++i) {
jrubyArgs[i + 3] = args[i];
}
org.jruby.Main.main(jrubyArgs);
}
}
, script lib/livesync_wrapper.rb
build.xml( )
build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="dist" name="Juggernaut">
<description>Combine Ruby and Java source with the jruby-complete jar</description>
<target name="dist" description="Create the deliverable jar">
<taskdef name="jarjar"
classname="com.tonicsystems.jarjar.JarJarTask"
classpath="vendor/jarjar-1.0rc7.jar"/>
<mkdir dir="pkg"/>
<jarjar destfile="pkg/livesync.jar">
<manifest>
<attribute name="Main-Class" value="livesync.LiveSyncRunner"/>
</manifest>
<fileset dir="classes"/>
<zipfileset dir="vendor/gems" prefix="vendor/gems"/>
<zipfileset src="vendor/jruby-complete-1.1.2.jar" />
</jarjar>
</target>
</project>
, , , , :
- Main-Class -
java
( ruby script)
- / zipfilesets
jruby-complete-1.1.2.jar jarjar-1.0rc7.jar . - .
ant. script
java -jar pkg/livesync.jar args1 agrs2 ...
, !