diff --git a/benchmarks/Main.hs b/benchmarks/Main.hs
--- a/benchmarks/Main.hs
+++ b/benchmarks/Main.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
 module Main where
@@ -6,9 +5,13 @@
 import Criterion.Main as Criterion
 import Control.DeepSeq
 import Data.Int
+import Data.List (intersperse)
+import qualified Data.Text as Text
+import qualified Data.Text.Encoding as Text
 import qualified Data.Vector.Storable as VS
 import Language.Java
 import Language.Java.Streaming ()
+import Language.Java.Streaming.Jars (getJars)
 import Streaming (Of, Stream)
 import qualified Streaming.Prelude as Streaming
 
@@ -45,6 +48,8 @@
     ]
 
 main :: IO ()
-main =
-    withJVM ["-Djava.class.path=../jvm-batching/build/libs/jvm-batching.jar"] $
+main = do
+    jars <- getJars
+    let classpath = concat $ intersperse ":" jars
+    withJVM [Text.encodeUtf8 $ Text.pack $ "-Djava.class.path=" ++ classpath] $
       Criterion.defaultMain [benchBatching]
diff --git a/jvm-streaming.cabal b/jvm-streaming.cabal
--- a/jvm-streaming.cabal
+++ b/jvm-streaming.cabal
@@ -1,5 +1,5 @@
 name:                jvm-streaming
-version:             0.3
+version:             0.3.1
 synopsis:            Expose Java iterators as streams from the streaming package.
 description:         Please see README.md.
 homepage:            http://github.com/tweag/inline-java/tree/master/jvm-streaming#readme
@@ -56,7 +56,8 @@
     inline-java,
     jvm,
     jvm-streaming,
-    streaming
+    streaming,
+    text
   default-language: Haskell2010
 
 benchmark micro-benchmarks
@@ -70,6 +71,7 @@
     jvm,
     jvm-streaming,
     streaming,
+    text,
     vector
   default-language: Haskell2010
   ghc-options: -threaded
diff --git a/src/main/haskell/Language/Java/Streaming.hs b/src/main/haskell/Language/Java/Streaming.hs
--- a/src/main/haskell/Language/Java/Streaming.hs
+++ b/src/main/haskell/Language/Java/Streaming.hs
@@ -10,6 +10,7 @@
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE RecursiveDo #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE StaticPointers #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE TypeOperators #-}
diff --git a/src/test/haskell/Main.hs b/src/test/haskell/Main.hs
--- a/src/test/haskell/Main.hs
+++ b/src/test/haskell/Main.hs
@@ -1,11 +1,16 @@
-{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
+import Data.List (intersperse)
+import qualified Data.Text as Text
+import qualified Data.Text.Encoding as Text
 import Language.Java (withJVM)
+import Language.Java.Streaming.Jars (getJars)
 import qualified Spec
 import Test.Hspec
 
 main :: IO ()
-main =
-    withJVM ["-Djava.class.path=../jvm-batching/build/libs/jvm-batching.jar"] $
+main = do
+    jars <- getJars
+    let classpath = concat $ intersperse ":" jars
+    withJVM [Text.encodeUtf8 $ Text.pack $ "-Djava.class.path=" ++ classpath] $
       hspec Spec.spec
