java-bridge-0.20130602: examples/system-properties/system-properties.hs
import Foreign.Java
import Foreign.Java.Maybe
import qualified Foreign.Java.JNI.Safe as JNI
import Data.Maybe
main = do
JNI.setDebugStatus True
runJava $ do
(Just system) <- getClass "java.lang.System"
getProperties <- system `bindStaticMethod` "getProperties" ::= object "java.util.Properties"
(Just hashtableClass) <- getClass "java.util.Hashtable"
getEntrySet <- hashtableClass `bindMethod` "entrySet" ::= object "java.util.Set"
(Just setClass) <- getClass "java.util.Set"
toArray <- setClass `bindMethod` "toArray" ::= array (object "java.lang.Object")
(Just properties) <- getProperties
(Just entrySet) <- getEntrySet properties
toArray entrySet
>>= toList . fromJust
>>= mapM toString
>>= mapM (io . putStrLn)