Идея. Не грузит. Ресурсы

ReyMagos

Тег-бомбастер
412
7
121
Это не майновский проект. Перепробовал всё. Не работает.

Java:
java.io.FileNotFoundException: config.ini (Не удается найти указанный файл)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileReader.<init>(FileReader.java:72)
    at utils.Config.<init>(Config.java:17)
    at Main.main(Main.java:8)

Градл:
Java:
plugins {
    id 'java'
    id 'idea'
}

group 'org.example'
version '1.0'

sourceSets {
    main {
        java {
            srcDirs = ["src/main/java"]
        }
        resources {
            srcDirs = ["src/main/resources"]
        }
    }
    test {
        java {
            srcDirs = ["src/test/java"]
        }
        resources {
            srcDirs = ["src/test/resources"]
        }
    }
}

idea {
    module {
        inheritOutputDirs = true
    }
}

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.reflections', name: 'reflections', version: '0.9.12'
}
Файл лежит в папке resources. Более того, его даже находит идея:
123.png
И да, build and run using Intellij IDEA стоит.
 
292
14
160
Файл лежит в папке resources

А когда ты пишешь new File("config.ini"), жаба будет пытаться его найти в текущей папке (где запущено приложение).
Сначала распакуй из джарника этот конфиг в качестве дефолтного, потом пытайся читать.
 

ReyMagos

Тег-бомбастер
412
7
121
Так, погоди, у меня конфиг лежит не в джарнике, а просто в папке.
Но я так понял, что ты имеешь в виду, что в проекте нужно использовать абсолютный путь, а потом в джарнике оно будет работать как надо.
 

ReyMagos

Тег-бомбастер
412
7
121
И так, если я оставлю всё как есть, то в джарнике всё будет работать, верно? В градле указана папка с ресурсами и он должен собрать правильно. А пока мне просто использовать абсолютный путь.
 

Icosider

Kotliner
Администратор
3,600
99
663
Неверно, у тебя из джарника не будет читаться. Как уже сказал @tox1cozZ, тебе надо использовать getResourceAsStream, вместо File для получения своего конфига из джарника.
 

ReyMagos

Тег-бомбастер
412
7
121
Спасибо огромное, всё работает!
Таков путь:
Config config = new Config("/config.ini");

Так получаю:
BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(config)));
 
Сверху