Ammonite icon indicating copy to clipboard operation
Ammonite copied to clipboard

Script using NuProcess fails in ammonite > 1.0.5

Open mprihoda opened this issue 5 years ago • 1 comments

I have a simple Hello World example script with NuProcess that works in Ammonite 1.0.5, properly downloading the JNA dependency.

https://gist.github.com/mprihoda/d50c8322eb3b9fb36290c8b84d9f0027

Since 1.1.0, JNA is not downloaded and script throws

java.lang.IllegalArgumentException: class com.sun.jna.JNIEnv is not a supported argument type (in method Java_java_lang_UNIXProcess_init in class com.zaxxer.nuprocess.internal.LibJava8)
  com.sun.jna.Native.register(Native.java:1604)
  com.sun.jna.Native.register(Native.java:1261)
  com.zaxxer.nuprocess.internal.LibJava8.<clinit>(LibJava8.java:36)
  com.zaxxer.nuprocess.linux.LinuxProcess.start(LinuxProcess.java:109)
  com.zaxxer.nuprocess.linux.LinProcessFactory.createProcess(LinProcessFactory.java:40)
  com.zaxxer.nuprocess.NuProcessBuilder.start(NuProcessBuilder.java:266)
  ammonite.$file.nuprocess$.<init>(nuprocess.sc:26)
  ammonite.$file.nuprocess$.<clinit>(nuprocess.sc)

Since 1.2.1 until current 1.6.6 JNA is not downloaded and script throws:

java.lang.NoClassDefFoundError: com/sun/jna/JNIEnv
  com.zaxxer.nuprocess.linux.LinuxProcess.start(LinuxProcess.java:109)
  com.zaxxer.nuprocess.linux.LinProcessFactory.createProcess(LinProcessFactory.java:40)
  com.zaxxer.nuprocess.NuProcessBuilder.start(NuProcessBuilder.java:266)
  ammonite.$file.nuprocess$.<init>(nuprocess.sc:26)
  ammonite.$file.nuprocess$.<clinit>(nuprocess.sc)
java.lang.ClassNotFoundException: com.sun.jna.JNIEnv
  java.net.URLClassLoader.findClass(URLClassLoader.java:381)
  ammonite.runtime.SpecialClassLoader.findClass(ClassLoaders.scala:211)
  java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  com.zaxxer.nuprocess.linux.LinuxProcess.start(LinuxProcess.java:109)
  com.zaxxer.nuprocess.linux.LinProcessFactory.createProcess(LinProcessFactory.java:40)
  com.zaxxer.nuprocess.NuProcessBuilder.start(NuProcessBuilder.java:266)
  ammonite.$file.nuprocess$.<init>(nuprocess.sc:26)
  ammonite.$file.nuprocess$.<clinit>(nuprocess.sc)

I'll try to find the time to fix it in the next few days, but any ideas that would speed up my progress are welcomed.

mprihoda avatar Apr 27 '19 18:04 mprihoda

Using nuprocess 2.0.0 and ammonite 2.1.4 appear to work as expected.

amm --no-remote-logging nuprocess.sc
Hello World!

https://gist.github.com/mpkocher/7f7ca44516bb6cf42353283e04db93b6

mpkocher avatar May 26 '20 04:05 mpkocher