提问人:Sc4rocko 提问时间:10/18/2023 更新时间:10/18/2023 访问量:28
相对路径在 IntelliJ IDEA 中不起作用
Relative paths do not work in IntelliJ IDEA
问:
我的 Kotlin/JavaFX (Intellij IDEA) 项目中的相对路径有问题。 如果我尝试加载文件,使用绝对路径它可以正常工作,一旦我与亲戚尝试相同的方法,它就不起作用。我检查了一切,拼写等。我在同一包中创建了一个测试类,但它仍然无法加载文件。我发现出了点问题,并在一个空项目中尝试了相同的操作,没有gradle / javafx,我可以使用相对路径加载文件。我的项目配置有问题吗?
stage.icons.add(Image("C:\\Users\\nicol\\spz_app\\dev\\app\\spz\\Spz\\src\\main\\resources\\org\\nico\\spz\\logo.png")); // works
val test = SpzApplication::class.java.getResource("Test.txt")
println(test.toExternalForm("Spz/src/main/resources/org/nico/spz/logo.png")) //does not work
val test = SpzApplication::class.java.getResource("Test.txt")
println(test.toExternalForm("Test.txt")) //does not work as well even though there is a Text.txt file in the same package
build.gradle:
plugins {
id 'java'
id 'application'
id 'org.jetbrains.kotlin.jvm' version '1.8.10'
id 'org.javamodularity.moduleplugin' version '1.8.12'
id 'org.openjfx.javafxplugin' version '0.0.13'
id 'org.beryx.jlink' version '2.25.0'
}
group 'org.nico'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
ext {
junitVersion = '5.9.2'
}
sourceCompatibility = '17'
targetCompatibility = '17'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
application {
mainModule = 'org.nico.spz'
mainClass = 'org.nico.spz.SpzApplication'
}
[compileKotlin, compileTestKotlin].forEach {
it.kotlinOptions {
jvmTarget = '17' }
}
javafx {
version = '17.0.6'
modules = ['javafx.controls', 'javafx.fxml']
}
dependencies {
implementation('org.controlsfx:controlsfx:11.1.2')
implementation 'com.oracle.database.jdbc:ojdbc11:21.1.0.0'
implementation 'mysql:mysql-connector-java:8.0.28'
implementation 'org.yaml:snakeyaml:2.0'
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
implementation 'org.jfxtras:jmetro:11.6.14'
implementation 'io.github.palexdev:materialfx:11.16.1'
implementation "joda-time:joda-time:2.10.10"
}
test {
useJUnitPlatform() }
sourceSets {
main {
resources {
srcDirs = ['Spz/src/main/resources']
}
}
}
jlink {
imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'app'
}
}
jlinkZip {
group = 'distribution'
}
答: 暂无答案
评论
getResource(..)