open module org.client.main {
exports org.apj.client.app;
requires javafx.controls;
requires javafx.base;
requires javafx.fxml;
requires spring.context;
requires spring.web;
requires java.sql;
requires spring.beans;
requires spring.core;
}
这是我的父gradle构建文件:
subprojects {
afterEvaluate {
repositories {
jcenter()
}
compileJava {
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
]
classpath = files()
}
}
compileTestJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'junit',
'--add-reads', "$moduleName=junit",
'--patch-module', "$moduleName=" + files(sourceSets.test.java.srcDirs).asPath,
]
classpath = files()
}
}
test {
inputs.property("moduleName", moduleName)
doFirst {
jvmArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'ALL-MODULE-PATH',
'--add-reads', "$moduleName=junit",
'--patch-module', "$moduleName=" + files(sourceSets.test.java.outputDir).asPath,
]
classpath = files()
}
}
}
}
这是我的客户端模块构建文件:
plugins {
id 'java'
}
group 'APJ'
version '1.0-SNAPSHOT'
sourceCompatibility = 11
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.4.RELEASE'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
ext.moduleName = 'org.client.main'
我正在尝试为FXMLLoader获取getResource,但是我根本无法使其正常工作。我已经挣扎了两个小时,现在我真的很绝望。我尝试过像文件名的每个可能组合,每个可能的位置,但仍然返回null。
我也尝试过
ClassLoader.getSystemClassLoader().getResource("/login.fxml")
getClass().getResource("/login.fxml")
但这也不起作用。
有人可以帮我弄这个吗 ?我会很感激。
最佳答案
我注意到Java 11有2个使getResource工作的选项:
使用插件'org.openjfx.javafxplugin' version '0.0.7'
或
在上面的Slaw提供的链接中使用'--patch-module':Where do resource files go in a Gradle project that builds a Java 9 module?
run {
doFirst {
jvmArgs = [
'--module-path', classpath.asPath,
'--patch-module', "$moduleName=" + files(sourceSets.main.output.resourcesDir).asPath,
'--module', mainClassName
]
}
}
关于java - GetResource方法在Java 11中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54317046/