eclipse-zenoh / zenoh-java

Java APIs for zenoh
http://zenoh.io
Other
17 stars 14 forks source link

[Bug] ZeonHD Java SDK 0.11 Not Supported on ARM64 Platform #155

Open taoyonggang opened 4 weeks ago

taoyonggang commented 4 weeks ago

Describe the bug

ZeonHD Java SDK Bug Report

Title: ZeonHD Java SDK 0.11 Not Supported on ARM64 Platform

Issue Description: The ZeonHD Java SDK version 0.11 from Maven repository is not compatible with ARM64 (ARMv8) architecture Linux systems. The SDK fails to load native libraries with no temporary workaround available.

Environment:

Error Manifestation: UnsatisfiedLinkError occurs during application startup due to missing native library support for ARM64.

Root Cause:

  1. Native libraries for ARM64 platform not included in Maven package
  2. Current version only supports x86/x64 architectures
  3. No ARM64 platform implementation available

Steps to Reproduce:

  1. Set up Maven project in ARM64 environment
  2. Include ZeonHD Java SDK 0.11 dependency
  3. Execute code containing SDK initialization
  4. Observe UnsatisfiedLinkError

Technical Details:

<dependency>
    <groupId>com.zeonid</groupId>
    <artifactId>zeonhd-sdk</artifactId>
    <version>0.11</version>
</dependency>

Impact:

Priority: Critical - Blocks all ARM64 platform implementations

Required Actions:

  1. Develop native library support for ARM64 architecture
  2. Update Maven package to include ARM64 libraries
  3. Test and validate ARM64 platform compatibility
  4. Release new version with ARM64 support

Additional Notes:

To reproduce

1、Download the 0.11.0 jar for armv864 2、Install jar with maven 3、Maven package 4、Run in ubuntu20.04 with armv8, throw so not found. but it can run on x64.

System info

ubuntu 20.04 nvidia orin.

DariusIMP commented 4 weeks ago

Hi @taoyonggang, I'm wondering what is the output in your case when getting the os.name and os.arch properties.

It'd be helpful if you could run

        System.out.println(System.getProperty("os.name"));
        System.out.println(System.getProperty("os.arch"));