我有通过加载程序集和使用反射来查找实现的接口来交换 .NET 中的业务逻辑的经验。 这在运行时启用了行为组合,只需将 DLL 文件分发并放置到其工作目录中即可。 如何在 Clojure 中实现相同的目标? 我被告知我可以在没有 AoT 编译的情况下编译我的 Lein 项目,它依赖于 JVM 将从兄 ...
我有通过加载程序集和使用反射来查找实现的接口来交换 .NET 中的业务逻辑的经验。 这在运行时启用了行为组合,只需将 DLL 文件分发并放置到其工作目录中即可。 如何在 Clojure 中实现相同的目标? 我被告知我可以在没有 AoT 编译的情况下编译我的 Lein 项目,它依赖于 JVM 将从兄 ...
摘要 我无法反射性地跨模块边界实例化一个类。 该类具有包级访问权限,我试图不仅从包外部实例化它,而且从模块本身外部实例化它。 根据我的理解,只要包含模块open了包含包,并且实例化模块requires包含模块,我就可以这样做。 我尝试实例化的所有内容都是IllegalAccessEx ...
我想将旧的Java代码迁移到java9模块。 例如,在类路径中,有一个名为org.eclipse.jface.3.7.0.v20110928.jar的jar文件。 在类路径中,它被称为org.eclipse.jface_3.7.0.v20110928.jar。 jface之后文件名中的点在 ...
我遇到了一个我不明白的令人讨厌的问题... 我们有一整套用jdk8编写的实用程序库,与拼图无关,因此我们也没有在META-INF文件中设置“自动模块名称”。 现在,我们需要将使用这些实用程序库的产品迁移到java11。 我创建了一个module-info.java并输入 ...
模块化现有项目我遇到了以下问题: javac(java 10 or 11)抱怨: (许多其他模块会发生此错误) 因此,它说包“ java.xml.soap”来自“ java.xml.ws”模块。 对? 这是什么 告诉我有关java.xml.ws的信息: ...
我使用jdk 11并尝试理解java编译器的--patch-module选项。 这是我的简单模块: module-info.java : Patch.java : 我有Patch.java文件,想用它修补模块。 我试过了: 一世。 我还运行了一些伪模块路 ...
我正在创建一个拼图应用程序,用户需要将拼图碎片与拼图本身中缺少的拼图相匹配。 我目前所做的是创建一个图像对象,该对象包含完整的拼图图像。 然后,我在其上面叠加了一个拼图轮廓,作为另一个图像。 然后,我在拼图的最下面一行制作了一行按钮,这些按钮一起拼出了一个单词。 其中一个按钮会随机涂 ...
这里描述了Jigsaw的以下好处: 作为Project Jigsaw的一部分,所有Java Platform API都被拆分为单独的模块。 将所有Java API拆分为模块的好处是,您现在可以指定应用程序所需的Java平台的哪些模块。 了解应用程序所需的Java平台模块,Java可 ...
我在JDK 11上运行了基于模块化泽西的微服务。它可以很好地部署到Google App Engine。 可以在这里下载代码(或克隆主项目并切换到3.1标记): https : //github.com/Leejjon/SimpleJerseyService/releases/tag/3.1 ...
我们目前正在迁移到JPMS,为maven多模块项目中的所有模块设置module-info.java。 对于我们来说,将module-info.java放在“dev”分支中但不影响任何构建是理想的。 因此,想法是默认排除module-info.java并仅将其包含在特定的maven配置文件 ...
我读到JPMS的优点之一是更好的封装(除非明确打开,否则所有限制)。 但是我有一个问题:是什么阻止程序员替换第三方模块JAR中的module-info.class并导出所有包,甚至制作open模块,因此一切都可以通过反射(包括private成员)访问。 JPMS是真的可以真正帮助隐藏 ...
我将我们的原生Windows应用程序启动器从Java 8移植到Java 11.我们曾经调用JNI_CreateJavaVM方法来实例化JVM实例,找到主类并调用它的main方法。 使用模块化应用程序, env->FindClass不会返回我们的app类。 我尝试调用Class.forN ...
我终于尝试用JDK 11建立一个模块化的Java项目,但是我似乎没有正确使用模块和类路径。 到目前为止,除了创建项目并将Apache Commons IO 2.6添加到其类路径之外,我什么都没做。 模块文件仍然为空。 然后,我创建了一个测试类,并使用了其中一个Apache类,这使我感到 ...
我正在尝试将应用程序从Java 8升级到Java 11.0.2。因此,这是我使用Jigsaw模块的第一步! 我的应用程序使用Guice , Assistedinject和Throwingproviders扩展。 这是我当前的module-info.java : ` 该应 ...
我有一个非常基本的JavaFX应用程序,如果Application类不是 Main类,它可以完美地工作: 但是,当我将两者合并在一起时(这是大多数教程中推荐的方式,包括OpenJFX的官方文档 ),模块系统抛出IllegalAccessError (至少在OpenJDK 11.0.2上) ...
Java 9和更高版本实现了Java模块系统 (Project Jigsaw)。 我可以使用Vaadin Flow构建模块化应用程序吗? 尝试进行此操作时,应了解Vaadin特有的任何技术问题吗? (一般不问编写模块化代码的问题,只问Vaadin + Jigsaw问题。) ...
我能够使用这些说明来修补系统模块文件。 https://openjdk.java.net/projects/jigsaw/quick-start#xoverride 尝试使用同一命令修补package-info.java时,如果修补的版本与模块中的版本具有相同的内容,则不会生成packa ...
我试图在Java 11中做同样的事情,可以用pre-java 9中的-Xbootclasspath/p:path来完成。 作为一个简单的例子,我修改了java.lang.Integer的valueOf方法之一,并使用以下代码编译项目: javac --module-source-pat ...
有没有办法让Java类公开但只公开一个JAR文件? AKA,它不是私有包,而是公共包,但它不是公共JAR? 说我有这样的结构: 由于3 .java文件在不同的包中,我需要公开。 但有没有办法让它们只对包含该项目的JAR公开? 这样如果另一个项目导入JAR,它就看不到某些公共类 ...
最近,我构建了一个简单的JavaFX应用程序,并使用了OracleJDK 10及其JavaFX,此后,我决定更新到Java 11(OpenJDK 11.0.2)+ OpenJFX 11-我在下面看到构建错误errors: 这是我的pom.xml 这是我的module-info. ...