`resource-url` does not work as expected in a jar
Hi,
I'm trying to use resource-url
and it works correctly when run with kawa file.scm
but it doesn't work when the code is compiled and stored in a jar file. I'm using it like this:
(define resurl (resource-url "../img/bee.png"))
(define cursor-data::byte[] (apply byte[] (u8vector->list (path-bytes resurl))))
;...
(define tk:Toolkit (getToolkit))
(tk:createImage cursor-data)
And I find this error when loading it from a compiled .class
or in the jar file:
java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: class-resource
at gnu.kawa.io.URLPath.resolve(URLPath.java:100)
at src.canvas.run(canvas.scm:12)
at gnu.expr.ModuleBody.run(ModuleBody.java:51)
at gnu.expr.ModuleBody.run(ModuleBody.java:35)
at src.actions.run(actions.scm:11)
at gnu.expr.ModuleBody.run(ModuleBody.java:51)
at gnu.expr.ModuleBody.run(ModuleBody.java:35)
at main.run(main.scm:4)
at gnu.expr.ModuleBody.runAsMain(ModuleBody.java:149)
at main.main(main.scm)
Caused by: java.net.MalformedURLException: unknown protocol: class-resource
at java.base/java.net.URL.<init>(URL.java:682)
at java.base/java.net.URL.fromURI(URL.java:749)
at java.base/java.net.URI.toURL(URI.java:1136)
at gnu.kawa.io.URLPath.resolve(URLPath.java:98)
... 9 more
Version information:
- kawa-3.1.1
- openjdk-19.0.1
Edited by Ekaitz