"anvil-app-server" fails with java error

Hi there, sorry if this sounds like a newbie question. I’m trying to run my first Anvil app in a fresh new venv. I have amazon corretto 16 installed (with JAVA_HOME and PATH env vars properly set), have sucessfully created the app, downloaded the anvil server JAR file, but getting this error when I run anvil-app-server --app Test:

Exception in thread "main" java.lang.ExceptionInInitializerError
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:466)
        at clojure.lang.RT.classForName(RT.java:2204)
        at clojure.lang.RT.classForName(RT.java:2213)
        at clojure.lang.RT.loadClassForName(RT.java:2232)
        at clojure.lang.RT.load(RT.java:450)
        at clojure.lang.RT.load(RT.java:426)
        at clojure.core$load$fn__6548.invoke(core.clj:6046)
        at clojure.core$load.invokeStatic(core.clj:6045)
        at clojure.core$load.doInvoke(core.clj:6029)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5848)
        at clojure.core$load_one.invoke(core.clj:5843)
        at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
        at clojure.core$load_lib.invokeStatic(core.clj:5887)
        at clojure.core$load_lib.doInvoke(core.clj:5868)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:659)
        at clojure.core$load_libs.invokeStatic(core.clj:5925)
        at clojure.core$load_libs.doInvoke(core.clj:5909)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:659)
        at clojure.core$require.invokeStatic(core.clj:5947)
        at clojure.core$require.doInvoke(core.clj:5947)
        at clojure.lang.RestFn.invoke(RestFn.java:619)
        at anvil.app_server.tables$loading__6434__auto____656.invoke(tables.clj:1)
        at anvil.app_server.tables__init.load(Unknown Source)
        at anvil.app_server.tables__init.<clinit>(Unknown Source)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:466)
        at clojure.lang.RT.classForName(RT.java:2204)
        at clojure.lang.RT.classForName(RT.java:2213)
        at clojure.lang.RT.loadClassForName(RT.java:2232)
        at clojure.lang.RT.load(RT.java:450)
        at clojure.lang.RT.load(RT.java:426)
        at clojure.core$load$fn__6548.invoke(core.clj:6046)
        at clojure.core$load.invokeStatic(core.clj:6045)
        at clojure.core$load.doInvoke(core.clj:6029)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5848)
        at clojure.core$load_one.invoke(core.clj:5843)
        at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
        at clojure.core$load_lib.invokeStatic(core.clj:5887)
        at clojure.core$load_lib.doInvoke(core.clj:5868)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:659)
        at clojure.core$load_libs.invokeStatic(core.clj:5925)
        at clojure.core$load_libs.doInvoke(core.clj:5909)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:659)
        at clojure.core$require.invokeStatic(core.clj:5947)
        at clojure.core$require.doInvoke(core.clj:5947)
        at clojure.lang.RestFn.invoke(RestFn.java:3894)
        at anvil.app_server.run$loading__6434__auto____319.invoke(run.clj:1)
        at anvil.app_server.run__init.load(Unknown Source)
        at anvil.app_server.run__init.<clinit>(Unknown Source)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:466)
        at clojure.lang.RT.classForName(RT.java:2204)
        at clojure.lang.RT.classForName(RT.java:2213)
        at clojure.lang.RT.loadClassForName(RT.java:2232)
        at clojure.lang.RT.load(RT.java:450)
        at clojure.lang.RT.load(RT.java:426)
        at clojure.core$load$fn__6548.invoke(core.clj:6046)
        at clojure.core$load.invokeStatic(core.clj:6045)
        at clojure.core$load.doInvoke(core.clj:6029)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.lang.Var.invoke(Var.java:381)
        at clojure.lang.Util.loadWithClass(Util.java:250)
        at anvil.app_server.run.<clinit>(Unknown Source)
Caused by: java.lang.NumberFormatException: null
        at java.base/java.lang.Integer.parseInt(Integer.java:622)
        at java.base/java.lang.Integer.parseInt(Integer.java:778)
        at anvil.util$get_java_version.invokeStatic(util.clj:37)
        at anvil.util$get_java_version.invoke(util.clj:34)
        at anvil.util$fn__633.invokeStatic(util.clj:41)
        at anvil.util$fn__633.invoke(util.clj:41)
        at anvil.util__init.load(Unknown Source)
        at anvil.util__init.<clinit>(Unknown Source)
        ... 70 more

This is Windows 10 and python 3.7.4 btw. Any ideas?
thank you.

What parameters are you passing into the app server on launch? and have you modified any of the yaml files after git cloning?

My venv folder is called “Test”, my app name is also called “Test”, and I cloned git to “Test\Apps\Test”.
I didn’t change any yaml files, and not passing any extra parameters for the app server. Simply running:
anvil-app-server --app Test

Also tried creating a blank app, instead of cloning from git, using:
create-anvil-app blank Test
which runs fine and creates the app.

But then got the same error upon launching the server.

Hi @fabricio.chamon,

Thanks for posting this.

This is a known bug caused by the latest version of Java, which has changed how it reports its own version number. We have a fix that will go live with the next release of the App Server.

In the meantime, you should be able to work around the problem by using Java 11.

Hi @ryan,

When can we expect the next release of the App Server?
I’m waiting on another fix that is done but not yet released.

I don’t expect an exact date and I won’t hold you to it anyway - just an idea if it’s imminent or months away would be useful.

Thanks

Dear @ryan,

Thank you for the response, as you mentioned we can work around this issue by using java11.

as I download the openjdk 11 and use the same step to setup a todolist app, but this problem still happened.

do you have any ieda on this.

thanks for helping.