title: UnsatisfiedLinkError with JCEF
body: <h2>Context :</h2>
  
  <ul>
  <li><strong>Linux 64 debian</strong></li>
  <li>Java <strong>jdk 1.8.0_181</strong></li>
  <li><strong>CEF_VERSION 75.0.13+g2c92fcd+chromium-75.0.3770.100</strong> into <code>CMakeLists.txt</code></li>
  <li>Commit <strong>467f8fc</strong> 2019-07-02</li>
  </ul>
  
  <p>Here is the project tree :</p>
  
  <pre><code>.
  ├── pom.yml
  ├── java-cef/. &lt;------- the cloned java-cef repository
  ├── lib/ &lt;------------- where builded jar cef and dependencies are stored
  |   ├── jogamp/gluegen/1.0/gluegen-1.0.jar
  |   ├── jogamp/jogl/1.0/jogl-1.0.jar
  |   └── org/cef/1.0/cef-1.0.jar
  └── src/
  </code></pre>
  
  <p>I am building the <strong>JCEF</strong> native sources, here are the followed commands :</p>
  
  <pre class="lang-sh prettyprint-override"><code># Build the JCEF natives and jar
  cd java-cef
  mkdir jcef_build &amp;&amp; cd jcef_build
  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
  make -j4
  cd ../tools
  ./compile.sh linux64
  ./make_jar.sh linux64
  
  # Install the CEF jar and it's jar dependencies into lib/ folder
  cd ../../
  mvn install:install-file -Dfile=java-cef/out/linux64/jcef.jar -DgroupId=org -DartifactId=cef -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=lib
  mvn install:install-file -Dfile=java-cef/third_party/jogamp/jar/jogl-all-natives-linux-amd64.jar -DgroupId=jogamp -DartifactId=jogl -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=lib
  mvn install:install-file -Dfile=java-cef/third_party/jogamp/jar/gluegen-rt.jar -DgroupId=jogamp -DartifactId=gluegen -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=lib
  
  # Link to avoid ICU internal errors of CEF
  ln -s $PWD/native/Release/icudtl.dat $JAVA_HOME/jre/bin/icudtl.dat
  ln -s $PWD/native/Release/natives_blob.bin $JAVA_HOME/jre/bin/natives_blob.bin
  ln -s $PWD/native/Release/snapshot_blob.bin $JAVA_HOME/jre/bin/snapshot_blob.bin
  
  mvn install
  </code></pre>
  
  <p>Here is the <code>pom.xml</code> :</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
      &lt;groupId&gt;my.app&lt;/groupId&gt;
      &lt;artifactId&gt;app&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;packaging&gt;jar&lt;/packaging&gt;
  
      &lt;dependencies&gt;
      &lt;!-- JCEF dependencies --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org&lt;/groupId&gt;
              &lt;artifactId&gt;cef&lt;/artifactId&gt;
              &lt;version&gt;1.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jogamp&lt;/groupId&gt;
              &lt;artifactId&gt;gluegen&lt;/artifactId&gt;
              &lt;version&gt;1.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jogamp&lt;/groupId&gt;
              &lt;artifactId&gt;jogl&lt;/artifactId&gt;
              &lt;version&gt;1.0&lt;/version&gt;
          &lt;/dependency&gt;
      &lt;/dependencies&gt;
  
      &lt;build&gt;
          &lt;plugins&gt;        
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
                  &lt;configuration&gt;
                      &lt;descriptorRefs&gt;
                          &lt;descriptorRef&gt;jar-with-dependencies&lt;/descriptorRef&gt;
                      &lt;/descriptorRefs&gt;
                  &lt;/configuration&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;phase&gt;package&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;single&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
              &lt;/plugin&gt;
  
              &lt;!-- All about bash/bat creation --&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
                  &lt;artifactId&gt;appassembler-maven-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.0.0&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;programs&gt;
                          &lt;!-- generic --&gt;
                          &lt;program&gt;
                              &lt;mainClass&gt;my.app.boot.Boot&lt;/mainClass&gt;
                              &lt;id&gt;player&lt;/id&gt;
                              &lt;jvmSettings&gt;
                                  &lt;extraArguments&gt;
                                      &lt;extraArgument&gt;-Djava.library.path=${project.basedir}/java-cef/jcef_build/native/Release:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib&lt;/extraArgument&gt;
                                  &lt;/extraArguments&gt;
                              &lt;/jvmSettings&gt;
                          &lt;/program&gt;
                      &lt;/programs&gt;
                      &lt;assembleDirectory&gt;${project.basedir}&lt;/assembleDirectory&gt;
                  &lt;/configuration&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;phase&gt;package&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;assemble&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt; 
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                  &lt;version&gt;3.8.1&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;source&gt;1.8&lt;/source&gt;
                      &lt;target&gt;1.8&lt;/target&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  &lt;/project&gt;
  </code></pre>
  
  <h2>Issue :</h2>
  
  <p>When src code runs <code>CefApp.getInstance(args, settings).getVersion();</code>, it returns <code>null</code> and throws the following error :</p>
  
  <pre><code>Caused by: java.lang.UnsatisfiedLinkError: org.cef.CefApp.N_PreInitialize()Z
      at org.cef.CefApp.N_PreInitialize(Native Method)
      at org.cef.CefApp.access$000(CefApp.java:24)
      at org.cef.CefApp$1.run(CefApp.java:162)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
      at java.awt.EventQueue.access$500(EventQueue.java:97)
      at java.awt.EventQueue$3.run(EventQueue.java:709)
      at java.awt.EventQueue$3.run(EventQueue.java:703)
      at java.security.AccessController.doPrivileged(Native Method)
      ...
  
  java.lang.UnsatisfiedLinkError: org.cef.CefApp.N_GetVersion()Lorg/cef/CefApp$CefVersion;
      at org.cef.CefApp.N_GetVersion(Native Method)
      at org.cef.CefApp.getVersion(CefApp.java:235)
      at my.app.boot.Browser.&lt;init&gt;(Browser.java:42)
      at my.app.boot.Boot.main(Boot.java:52)
  </code></pre>
  
  <p>Any idea ?</p>