luminus-framework / luminus-template

a template project for the Luminus framework
http://www.luminusweb.net/
MIT License
645 stars 147 forks source link

lein repl can not work with java file #539

Closed vinurs closed 2 years ago

vinurs commented 3 years ago
lein new luminus app +undertow +postgres +swagger +service +auth +auth-jwe
cd app
mkdir -p src/java/utils
cd src/java/utils
touch HelloJava.java

this java file

package utils;
public class HelloJava {

   public static String greetMe() {
      return "Hello, this is Java calling!111";
   }

}

in project.clj add

  :java-source-paths ["src/java"]

then use it in src/clj/app/core.clj

(:import (utils HelloJava))

then lein repl, outputs

OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. Exception in thread "main" Syntax error compiling at (app/core.clj:1:1). at clojure.lang.Compiler.load(Compiler.java:7652) at clojure.lang.RT.loadResourceScript(RT.java:381) at clojure.lang.RT.loadResourceScript(RT.java:372) at clojure.lang.RT.load(RT.java:459) at clojure.lang.RT.load(RT.java:424) at clojure.core$load$fn__6856.invoke(core.clj:6115) at clojure.core$load.invokeStatic(core.clj:6114) at clojure.core$load.doInvoke(core.clj:6098) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invokeStatic(core.clj:5897) at clojure.core$load_one.invoke(core.clj:5892) at clojure.core$load_lib$fn6796.invoke(core.clj:5937) at clojure.core$load_lib.invokeStatic(core.clj:5936) at clojure.core$load_lib.doInvoke(core.clj:5917) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invokeStatic(core.clj:669) at clojure.core$load_libs.invokeStatic(core.clj:5974) at clojure.core$load_libs.doInvoke(core.clj:5958) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invokeStatic(core.clj:669) at clojure.core$require.invokeStatic(core.clj:5996) at clojure.core$require.doInvoke(core.clj:5996) at clojure.lang.RestFn.invoke(RestFn.java:703) at user$eval140$loading6737auto__141.invoke(user.clj:1) at user$eval140.invokeStatic(user.clj:1) at user$eval140.invoke(user.clj:1) at clojure.lang.Compiler.eval(Compiler.java:7181) at clojure.lang.Compiler.eval(Compiler.java:7170) at clojure.lang.Compiler.load(Compiler.java:7640) at clojure.lang.RT.loadResourceScript(RT.java:381) at clojure.lang.RT.loadResourceScript(RT.java:368) at clojure.lang.RT.maybeLoadResourceScript(RT.java:364) at clojure.lang.RT.doInit(RT.java:486) at clojure.lang.RT.init(RT.java:467) at clojure.main.main(main.java:38) Caused by: java.lang.ClassNotFoundException: utils.HelloJava at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:433) at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:586) at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) 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:2212) at clojure.lang.RT.classForNameNonLoading(RT.java:2225) at app.core$eval1589$loading6737auto____1590.invoke(core.clj:1) at app.core$eval1589.invokeStatic(core.clj:1) at app.core$eval1589.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:7181) at clojure.lang.Compiler.eval(Compiler.java:7170) at clojure.lang.Compiler.load(Compiler.java:7640) ... 34 more

i use example in https://hypirion.com/musings/advanced-intermixing-java-clj to add java file, it works ok

vinurs commented 3 years ago

any solution for this?

yogthos commented 3 years ago

Not sure what can be done in the template for this.

vinurs commented 2 years ago

related to this issue https://github.com/luminus-framework/luminus-template/issues/319