快速跟踪EFL的Clojure / Java绑定

时间:2012-04-15 03:04:28

标签: java binding clojure java-native-interface jna

我想为EFL制作Clojure / Java绑定。 JNA似乎需要大量的显式结构映射(Bridj做同样的事情)。 JNI有Gluegen,所以我认为这可能更简单。

与Gluegen&决定初级模块将是一个很好的起点,我跑了:

java -jar /usr/share/java/gluegen2.jar -I。 $(pkg-config elementary --cflags)/usr/include/elementary-0/Elementary.h

...并且很快发现我需要创建大量的标题存根,即> 29

我有三个问题:

  1. 为此项目生成Java绑定的最快最简单的方法是什么?
  2. 如果是Gluegen,是否有用于生成显着标头存根的程序?
  3. 如果是JNA,是否有用于生成显着指针/结构映射的程序?
  4. 快速跟进。看来我可以用clojure-jna开箱即可做一些事情

    user=> (use 'net.n01se.clojure-jna)
    nil
    user=> (jna-invoke Integer eina/eina_init)
    1
    user=> (jna-invoke String eina/eina_str_escape "They'll start going ripe on us pretty soon.")
    "They\\'ll\\ start\\ going\\ ripe\\ on\\ us\\ pretty\\ soon."
    user=> (vec (jna-invoke (class (into-array String [])) eina/eina_str_split "Calvin;Leoben;D'anna;Simon;Dora2;105Rl;Six;Daniel;Sharon" ";" 0))
    ["Calvin" "Leoben" "D'anna" "Simon" "Dora2" "105Rl" "Six" "Daniel" "Sharon"]
    user=> (jna-invoke Integer eina/eina_shutdown)
    0
    

1 个答案:

答案 0 :(得分:1)

对于JNA和Bridj,

JNAerator将为您生成绑定。