语境
我想将 JavaFx 与 clojure 一起使用。
我知道http://nailthatbug.net /2011/06/clojure-javafx-2-0-simple-app/
问题:
有没有办法使用 lein 中的 native-deps 使 JavaFX 与 Clojure 一起工作?
谢谢!
我想将 JavaFx 与 clojure 一起使用。
我知道http://nailthatbug.net /2011/06/clojure-javafx-2-0-simple-app/
有没有办法使用 lein 中的 native-deps 使 JavaFX 与 Clojure 一起工作?
谢谢!
我在 Github 上创建了一个简单的 Clojure 和 JavaFX 示例。在 Ubuntu 上进行测试我必须使用deploy:deploy-file目标将 JavaFX 运行时安装到我的本地 Maven 存储库中(install:install-file 对我不起作用)。
mvn deploy:deploy-file -DgroupId=local.oracle -DartifactId=javafxrt -Dversion=2.2.0 -Dpackaging=jar -Dfile=/usr/lib/jvm/java-7-oracle-amd64/jre/lib/jfxrt.jar -Durl=file:/home/raju/.m2/repository
确保正确设置了以下参数:
在 project.clj 中,我在将 JAR 安装到存储库时添加了基于 -DgroupId 和 -DartifactId 值的依赖项。如果您使用更改这些值,请确保相应地更改依赖项:
[local.oracle/javafxrt "2.2.0"]
Java 能够毫无问题地加载二进制库。如果 Java 报告加载二进制库时出现问题,例如
引起:java.lang.UnsatisfiedLinkError:无法加载库:/usr/lib/jvm/javafx-sdk/rt/lib/amd64/libglass.so
在 SO 上查看这两个问题:
什么是 LD_LIBRARY_PATH 以及如何使用它?
java.lang.UnsatisfiedLinkError no *****.dll in java.library.path
因为 JavaFx 具有本机依赖项,所以您的选择仅限于,]
因为您链接到的教程涵盖了包/程序的用户自己安装 JavaFx 的情况,通过使用robert.hook
并依赖最终用户的包管理器来提供实际的本机依赖项。我将介绍如何让您的包/程序包含依赖项。
native-deps可用于将本机依赖项与您的包一起提供。您只需在适当的目录中添加所有 .so、.dll、.etc 文件。我认为项目 github 页面在解释结构方面比我做得更好。
问题中的链接已损坏,因此我看不到您的示例,但是对于 Java 8,JavaFX 现在是标准 JDK/JRE 的一部分。因此,我希望本机依赖问题在这一点上无关紧要。
不确定这是否对其他人有用,但这似乎(到目前为止)对我有用:
mvn install:install-file -DgroupId=javafx -DartifactId=javafx -Dversion=2.1.0 -Dpackaging=jar -Dfile=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib/jfxrt。罐
我不知道为什么会这样,但我相信 jfxrt.jar 有我需要的文件。然后,在此之后,我在 project.clj 中将其点燃为
[javafx "2.1.0"]
在 :dependencies (不是 :native-deps) 部分。
[写完这篇,我真的不知道为什么这似乎有效。]