#2 Exception java.lang.NoSuchFieldException: usr_paths when running jar with java 13

Closed
opened 3 years ago by claudio · 2 comments
claudio commented 3 years ago

To reproduce:

  1. Download Release 0.1
  2. Install java 13.
  3. Run example following the README.md file.
  4. Get the following log:
2022-02-02 06:40:14:593 [main] DEBUG FMUAnalyzerApp$ - Classpath used:
2022-02-02 06:40:14:622 [main] INFO MBTRunner$ - Running modbat on fmu threewatertank1.fmu
2022-02-02 06:40:14:626 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeFmu - Loading library: lib/Windows-amd64/fmuapi.dll
2022-02-02 06:40:14:627 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeLibraryLoader - Extracting library from: lib/Windows-amd64/fmuapi.dll
2022-02-02 06:40:15:069 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeLibraryLoader - Extracted library: C:\Users\au602135\AppData\Local\Temp\jnifmuapi17456685047655138051\jnifmuapi-Windows-amd64\fmuapi.dll
2022-02-02 06:40:15:069 [main] ERROR org.intocps.fmi.jnifmuapi.NativeFmu - Faild to load native Library file: lib/Windows-amd64/fmuapi.dll
java.lang.NoSuchFieldException: usr_paths
        at java.base/java.lang.Class.getDeclaredField(Class.java:2412)
        at org.intocps.fmi.jnifmuapi.NativeLibraryLoader.addLibraryPath(NativeLibraryLoader.java:153)
        at org.intocps.fmi.jnifmuapi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:98)
        at org.intocps.fmi.jnifmuapi.NativeFmu.<clinit>(NativeFmu.java:62)
        at org.intocps.fmi.jnifmuapi.Factory.create(Factory.java:48)
        at FMUHandler$.load(FMUHandler.scala:75)
        at MBTRunner$.run_mbt(MBTRunner.scala:85)
        at FMUAnalyzerApp$$anonfun$19.apply(FMUAnalyzerApp.scala:98)
        at FMUAnalyzerApp$$anonfun$19.apply(FMUAnalyzerApp.scala:98)
        at FMUHandler$.applyCmdFMUsDir(FMUHandler.scala:126)
        at FMUAnalyzerApp$.delayedEndpoint$FMUAnalyzerApp$1(FMUAnalyzerApp.scala:98)
        at FMUAnalyzerApp$delayedInit$body.apply(FMUAnalyzerApp.scala:11)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:392)
        at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
        at scala.App$class.main(App.scala:76)
        at FMUAnalyzerApp$.main(FMUAnalyzerApp.scala:11)
        at FMUAnalyzerApp.main(FMUAnalyzerApp.scala)
Exception in thread "main" org.intocps.fmi.FmuInvocationException: Native fmuapi library not loaded. Check log for more information.
        at org.intocps.fmi.jnifmuapi.DirectoryFmu.<init>(DirectoryFmu.java:67)
To reproduce: 1. Download [Release 0.1](https://msdl.uantwerpen.be/cloud/public/279502) 2. Install java 13. 3. Run example following the [README.md](https://msdl.uantwerpen.be/git/claudio/FMIMOBSTER/src/0.1/README.md) file. 4. Get the following log: ```` 2022-02-02 06:40:14:593 [main] DEBUG FMUAnalyzerApp$ - Classpath used: 2022-02-02 06:40:14:622 [main] INFO MBTRunner$ - Running modbat on fmu threewatertank1.fmu 2022-02-02 06:40:14:626 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeFmu - Loading library: lib/Windows-amd64/fmuapi.dll 2022-02-02 06:40:14:627 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeLibraryLoader - Extracting library from: lib/Windows-amd64/fmuapi.dll 2022-02-02 06:40:15:069 [main] DEBUG org.intocps.fmi.jnifmuapi.NativeLibraryLoader - Extracted library: C:\Users\au602135\AppData\Local\Temp\jnifmuapi17456685047655138051\jnifmuapi-Windows-amd64\fmuapi.dll 2022-02-02 06:40:15:069 [main] ERROR org.intocps.fmi.jnifmuapi.NativeFmu - Faild to load native Library file: lib/Windows-amd64/fmuapi.dll java.lang.NoSuchFieldException: usr_paths at java.base/java.lang.Class.getDeclaredField(Class.java:2412) at org.intocps.fmi.jnifmuapi.NativeLibraryLoader.addLibraryPath(NativeLibraryLoader.java:153) at org.intocps.fmi.jnifmuapi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:98) at org.intocps.fmi.jnifmuapi.NativeFmu.<clinit>(NativeFmu.java:62) at org.intocps.fmi.jnifmuapi.Factory.create(Factory.java:48) at FMUHandler$.load(FMUHandler.scala:75) at MBTRunner$.run_mbt(MBTRunner.scala:85) at FMUAnalyzerApp$$anonfun$19.apply(FMUAnalyzerApp.scala:98) at FMUAnalyzerApp$$anonfun$19.apply(FMUAnalyzerApp.scala:98) at FMUHandler$.applyCmdFMUsDir(FMUHandler.scala:126) at FMUAnalyzerApp$.delayedEndpoint$FMUAnalyzerApp$1(FMUAnalyzerApp.scala:98) at FMUAnalyzerApp$delayedInit$body.apply(FMUAnalyzerApp.scala:11) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.collection.immutable.List.foreach(List.scala:392) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at FMUAnalyzerApp$.main(FMUAnalyzerApp.scala:11) at FMUAnalyzerApp.main(FMUAnalyzerApp.scala) Exception in thread "main" org.intocps.fmi.FmuInvocationException: Native fmuapi library not loaded. Check log for more information. at org.intocps.fmi.jnifmuapi.DirectoryFmu.<init>(DirectoryFmu.java:67) ````
claudio commented 3 years ago
Owner

The solution is to use Java 11:

java 11.0.11 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
The solution is to use Java 11: ```` java 11.0.11 2021-04-20 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode) ````
claudio commented 3 years ago
Owner
This is fixed by documentation in https://msdl.uantwerpen.be/git/claudio/FMIMOBSTER/commit/7e3c067c08035919e259c80d280e55cf13997607
Sign in to join this conversation.
No Label
No Milestone
No assignee
1 Participants
Loading...
Cancel
Save
There is no content yet.