For first time, I'm using Intellij IDEA for setting up my first Gradle project. I'm seeing the following error while reading data from resource bundle.
java.util.MissingResourceException: Can't find bundle for base name org.example.module.MessagesBundle, locale en
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
at org.example.Main.getMessageFromBundle(Main.java:19)
at org.example.Main.main(Main.java:12)
I'm adding sample code from project.
Main class
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package org.example;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
System.out.println(getMessageFromBundle("MYCODE01", "org.example.module"));
}
private static String getMessageFromBundle(String code, String resourceBundle) {
try {
ResourceBundle bundle = ResourceBundle.getBundle(resourceBundle + ".MessagesBundle", Locale.ENGLISH);
return bundle.getString(code);
} catch (MissingResourceException e) {
e.printStackTrace();
return "";
}
}
}
Resource bundle
MYCODE01=My test message
build.gradle
plugins {
id 'java-library'
}
repositories {
mavenCentral()
}
dependencies {
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
}
test {
useJUnitPlatform()
}
I tried the following things to resolve missing resource bundle issue. But issue remains same.
- Added source root in build.gradle
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
resources {
srcDirs = ['src/main/resources']
}
}
test {
java {
srcDirs = ['src/test/java']
}
resources {
srcDirs = ['src/test/resources']
}
}
}
- Added source root in build.gradle
compileJava {
sourceSets.main.java.srcDirs = ['src/main/java']
sourceSets.main.resources.srcDirs = ['src/main/resources']
sourceSets.test.java.srcDirs = ['src/test/java']
sourceSets.test.resources.srcDirs = ['src/test/resources']
}
- Restructured project
Restructured project