'Java JCEF on Linux 64
For windows I have already created a Java browser based on JCEF Chromium.
I use already created binaries that can be downloaded here:
https://github.com/jcefmaven/jcefbuild/releases.
I use the same version of the java JDK 11.0.13 for both platforms.
I have the binaries located in the same directory "bin" as the JAR file and I edit System.setProperty.
The path settings work correctly.
String currFolder = System.getProperty("user.dir") + File.separator;
try {
System.setProperty("java.library.path", currFolder + File.separator + "bin");
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
Under windows everything works fine, but as soon as I replace the binaries and classes with the Linux64 version, I get this message:
Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/jdk.internal.jimage.BasicImageReader.<init>(BasicImageReader.java:95) at java.base/jdk.internal.jimage.ImageReader$SharedImageReader.<init>(ImageReader.java:224) at java.base/jdk.internal.jimage.ImageReader$SharedImageReader.open(ImageReader.java:238) at java.base/jdk.internal.jimage.ImageReader.open(ImageReader.java:67) at java.base/jdk.internal.jimage.ImageReader.open(ImageReader.java:71) at java.base/jdk.internal.jimage.ImageReaderFactory$1.apply(ImageReaderFactory.java:70) at java.base/jdk.internal.jimage.ImageReaderFactory$1.apply(ImageReaderFactory.java:67) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) at java.base/jdk.internal.jimage.ImageReaderFactory.get(ImageReaderFactory.java:61) at java.base/jdk.internal.jimage.ImageReaderFactory.getImageReader(ImageReaderFactory.java:85) at java.base/jdk.internal.module.SystemModuleFinders$SystemImage.<clinit>(SystemModuleFinders.java:383) at java.base/jdk.internal.module.SystemModuleFinders$SystemModuleReader.findImageLocation(SystemModuleFinders.java:426) at java.base/jdk.internal.module.SystemModuleFinders$SystemModuleReader.find(SystemModuleFinders.java:437) at java.base/jdk.internal.loader.BuiltinClassLoader$2.run(BuiltinClassLoader.java:407) at java.base/jdk.internal.loader.BuiltinClassLoader$2.run(BuiltinClassLoader.java:402) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/jdk.internal.loader.BuiltinClassLoader.findMiscResource(BuiltinClassLoader.java:401) at java.base/jdk.internal.loader.BuiltinClassLoader.findResources(BuiltinClassLoader.java:332) at java.base/jdk.internal.loader.BootLoader.findResources(BootLoader.java:162) at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1465) at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1463) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1196) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1221) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1265) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300) at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385) at java.base/java.net.URL$1.getNext(URL.java:1314) at java.base/java.net.URL$1.hasNext(URL.java:1329) at java.base/java.net.URL$2.run(URL.java:1355) at java.base/java.net.URL$2.run(URL.java:1352) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.net.URL.lookupViaProviders(URL.java:1351) at java.base/java.net.URL.getURLStreamHandler(URL.java:1437) at java.base/java.net.URL.<init>(URL.java:651) at java.base/java.net.URL.<init>(URL.java:541) at java.base/java.net.URL.<init>(URL.java:488) at KioskWebBrowser.UrlCheck.getDomainName(UrlCheck.java:147) at KioskWebBrowser.UrlCheck.setLocalDomain(UrlCheck.java:105) at KioskWebBrowser.App.main(App.java:331) Caused by: java.lang.NullPointerException at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2646) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830) at java.base/java.lang.System.loadLibrary(System.java:1873) at java.base/jdk.internal.jimage.NativeImageBuffer$1.run(NativeImageBuffer.java:41) at java.base/jdk.internal.jimage.NativeImageBuffer$1.run(NativeImageBuffer.java:39) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/jdk.internal.jimage.NativeImageBuffer.<clinit>(NativeImageBuffer.java:38)
Do you know what the problem might be?
Thank you for the answer.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
