У меня такой же вопрос.Мой текущий подход выглядит следующим образом (и не работает должным образом ...):
// jruby-complete-1.6.0.RC2.jar
import org.jruby.Ruby;
class JRubyStop {
public static void main(String[] args) throws InterruptedException {
final Ruby jruby = Ruby.newInstance();
Thread jrubyThread = new Thread() {
public void run() {
String scriptlet = "for i in 0..100; puts i; sleep(1); end";
jruby.evalScriptlet(scriptlet);
}
};
jrubyThread.start();
Thread.sleep(5000);
System.out.println("interrupt!");
jrubyThread.interrupt();
System.out.println("interrupted?!");
}
}
После вывода «interrupted ?!»поток все еще работает, пока не закончится скриптлет.
Редактировать: Преобразованный пример Groovy в Java SSCCE (http://sscce.org/).