apache / arrow

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
https://arrow.apache.org/
Apache License 2.0
14.33k stars 3.48k forks source link

[Java][JNI] Improve current cmake java libraries dependencies that needs Protobuf_ROOT and Protobuf_USE_STATIC_LIBS variables #36957

Open davisusanibar opened 1 year ago

davisusanibar commented 1 year ago

Describe the enhancement requested

The current Java JNI build needs to declare these CMAKE variables in order to build correctly:

It may be possible to add support for installing bundled protocols.

Component(s)

Documentation, Java

jinchengchenghh commented 4 months ago

Yes, I think it is essential, I meet the exception after I upgrade to arrow version 15.0.0

java.lang.UnsatisfiedLinkError: /tmp/jnilib-6199067493483126041.tmp: /tmp/jnilib-6199067493483126041.tmp: undefined symbol: _ZTIN6google8protobuf7MessageE
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[?:1.8.0_402]
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934) ~[?:1.8.0_402]
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817) ~[?:1.8.0_402]
    at java.lang.Runtime.load0(Runtime.java:782) ~[?:1.8.0_402]
    at java.lang.System.load(System.java:1100) ~[?:1.8.0_402]
    at org.apache.arrow.dataset.jni.JniLoader.load(JniLoader.java:92) ~[arrow-dataset-15.0.0.jar:15.0.0]
    at org.apache.arrow.dataset.jni.JniLoader.loadRemaining(JniLoader.java:75) ~[arrow-dataset-15.0.0.jar:15.0.0]
    at org.apache.arrow.dataset.jni.JniLoader.ensureLoaded(JniLoader.java:61) ~[arrow-dataset-15.0.0.jar:15.0.0]
    at org.apache.arrow.dataset.jni.NativeMemoryPool.createListenable(NativeMemoryPool.java:44) ~[arrow-dataset-15.0.0.jar:15.0.0]
lidavidm commented 4 months ago

That was already fixed. Use 15.0.2. https://github.com/apache/arrow/issues/39919