Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running WebStorm-143.382.36 on Java 1.8.0_73 on aarch64 Odroid C2 fails on libjnidispatch.so

I've successfully installed Java on the aarch64 Odroid C2.

odroid@odroid64:~/WebStorm-143.382.36$ java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

It is the 64 bit Java.

odroid@odroid64:~/WebStorm-143.382.36$ file /usr/lib/jvm/java-8-oracle/jre/bin/java
/usr/lib/jvm/java-8-oracle/jre/bin/java: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=72df68d7109e243051d4d4a7126fa84269c7c518, not stripped

I have copied the WebStorm-143.382.36 and .Webstorm11 directories from my x86_64 machine to the Odroid C2.

But when I try to start WebStorm it fails:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=350m; support was removed in 8.0
log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[   2013]  ERROR -        #com.intellij.idea.Main - Unable to load JNA library (OS: Linux 3.14.29-29) 
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/linux-aarch64/libjnidispatch.so) not found in resource path (bin/../lib/bootstrap.jar:bin/../lib/extensions.jar:bin/../lib/util.jar:bin/../lib/jdom.jar:bin/../lib/log4j.jar:bin/../lib/trove4j.jar:bin/../lib/jna.jar)
    at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:776)
    at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736)
    at com.sun.jna.Native.<clinit>(Native.java:131)
    at com.intellij.idea.StartupUtil.b(StartupUtil.java:316)
    at com.intellij.idea.StartupUtil.prepareAndStart(StartupUtil.java:112)
    at com.intellij.idea.MainImpl.start(MainImpl.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.ide.plugins.PluginManager$2.run(PluginManager.java:90)
    at java.lang.Thread.run(Thread.java:745)
[   1803]  ERROR -        #com.intellij.idea.Main - WebStorm 11.0.1  Build #WS-143.382.36 
[   1803]  ERROR -        #com.intellij.idea.Main - JDK: 1.8.0_73 
[   1803]  ERROR -        #com.intellij.idea.Main - VM: Java HotSpot(TM) 64-Bit Server VM 
[   1804]  ERROR -        #com.intellij.idea.Main - Vendor: Oracle Corporation 
[   1804]  ERROR -        #com.intellij.idea.Main - OS: Linux

Startup Error: Application cannot start in headless mode

How can get libjnidispatch.so for aarch64, or how can I work around this error?

That file is not present when I run WebStorm on my x86_64 machine.

Is there a root cause to this error?

like image 949
fadedbee Avatar asked Mar 22 '16 12:03

fadedbee


1 Answers

It is not possible to port installations in the way you have described. You would have to again recompile WebStorm using the aarch64 variants of the compilers used by the folks at JetBrains.

Reasons for failure:

  1. Pre-compiled binaries (like libjnidispatch.so) packaged with WebStorm are likely to fail in a similar fashion
  2. Your running a headless instance of Java (from your comments)
  3. WebStorm is likely to be optimized for its target platform and architecture. So copying it to other hardware and running it is impossible

Solutions that may work (not-likely):

  1. Recompile all pre-compiled binaries. Impossible for closed-source offerings
  2. Reinstall another JDK with GUI components. Your system might not be able to handle intensive tasks and that would be the reason your model comes with a headless version of java

Solution: Your best bet (a long shot -- no market in aarch64) would be to ask JetBrains to port the software to aarch64.

like image 110
Dhruvan Ganesh Avatar answered Oct 19 '22 05:10

Dhruvan Ganesh