Skip to content

Instantly share code, notes, and snippets.

@igrigorik
Created August 3, 2011 14:12
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save igrigorik/1122731 to your computer and use it in GitHub Desktop.
# igrigorik { ~ } > rvm use jruby
# Using /Users/igrigorik/.rvm/gems/jruby-1.6.2
# igrigorik { ~ } > gem install mvn:org.clojure:clojure
# Successfully installed mvn:org.clojure:clojure-1.3.0.b.1-java
# 1 gem installed
require 'rubygems'
require 'java'
require 'maven/org.clojure/clojure'
# Clojure Atoms in Jruby!
java_import 'clojure.lang.Atom'
p Atom.new nil # => #<Java::ClojureLang::Atom:0x536b98c3>
# Execute some arbitrary Clojure code
%w[
clojure.lang.Compiler
java.io.ByteArrayInputStream
java.io.BufferedReader
java.io.InputStreamReader
].each {|c| java_import c }
def clojure_execute(code)
java_string = java.lang.String.new(code + "\n")
stream = ByteArrayInputStream.new(java_string.getBytes)
rdr = BufferedReader.new(InputStreamReader.new(stream))
Compiler.load(rdr)
end
p clojure_execute('(first [1 2 3 4])') # => 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment