La forma más fácil de acceder a las bibliotecas C desde Java es JNA. Usted crea una interfaz Java que es isomorfa con las partes de la API C que desea utilizar, y luego JNA hace el resto. Esto significa que solo tiene que actualizar los métodos directamente pertinentes cuando la API cambie.
https://github.com/twall/jna/blob/master/README.md
TRAGO es más difícil de usar, pero JNA puede ser un callejón sin salida si ves que necesitas para mejorar el rendimiento. JLLVM es una herramienta basada en SWIG, por lo que puede considerar hacer referencia a ella o bifurcarla para sus propios fines.
No utilice JNI básico: elija entre SWIG o JNA.
Confiar ciegamente en contenedores de terceros con un historial mínimo es una propuesta arriesgada, pero si deliberadamente se trata ese proyecto como punto de partida, no se puede equivocar.
Con ambas tecnologías, de vez en cuando tendrás que buscar las constantes enum. Si no son fáciles de leer desde los archivos de encabezado, querrá escribir un sencillo programa en C que imprima las constantes que le interesen, para que pueda copiarlas manualmente en sus interfaces Java.
Un puerto como en una reimplementación de toda la base de código de LLVM (o al menos un gran subconjunto de él) sería una tremenda pérdida de esfuerzo.Simplemente llame a la API C como todos los demás. – delnan
Pero el programa en el que estoy trabajando es Java y no es mi permiso cambiar eso. Nunca escribí sobre volver a implementar todo. Esta no es mi intención, pedí formas más fáciles aquí. – gexicide
Eso no es lo que quise decir. La gente llama a LLVM de O'Caml y Python, por ejemplo. ¿Qué tan difícil puede ser llamar código C desde Java? – delnan