I try to use it like this:
public class ChronicleMapBenchmark {
public static void main(String[] args) throws IOException {
ChronicleMap<String, String> map = ChronicleMap
.of(String.class, String.class)
.name("benchmarkMap")
.entries(1_000_000)
.averageKeySize(10)
.averageValueSize(20)
.createPersistedTo(new File("chronicle-map.dat"));
// Perform benchmark operations (e.g., put, get)
for (int i = 0; i < 1_000_000; i++) {
map.put("key" + i, "value" + i);
}
// Measure performance metrics
map.close();
}
}
pom.xml:
<repositories>
<repository>
<id>chronicle-repo</id>
<url>https://nexus.chronicle.software/content/repositories/releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-map</artifactId>
<version>3.25ea6</version>
</dependency>
</dependencies>
I’m passsing these command line arguments:
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/com.sun.tools.javac.file=ALL-UNNAMED
Indeed I get this error:
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make public java.lang.Iterable com.sun.tools.javac.file.JavacFileManager.listLocationsForModules(javax.tools.JavaFileManager$Location) throws java.io.IOException accessible: module jdk.compiler does not "exports com.sun.tools.javac.file" to unnamed module @15bbf42f
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:168)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at net.openhft.compiler.CachedCompiler.compileFromJava(CachedCompiler.java:119)
at net.openhft.compiler.CachedCompiler.loadFromJava(CachedCompiler.java:158)
at net.openhft.compiler.CachedCompiler.loadFromJava(CachedCompiler.java:85)
at net.openhft.chronicle.values.ValueModel.createClass(ValueModel.java:326)
at net.openhft.chronicle.values.ValueModel.createNativeClass(ValueModel.java:306)
at net.openhft.chronicle.values.ValueModel.nativeClass(ValueModel.java:282)
at net.openhft.chronicle.values.Values.nativeClassFor(Values.java:89)
at net.openhft.chronicle.map.ChronicleMapBuilder.createWithFile(ChronicleMapBuilder.java:1695)
at net.openhft.chronicle.map.ChronicleMapBuilder.createPersistedTo(ChronicleMapBuilder.java:1588)
at ChronicleMapBenchmark.main(ChronicleMapBenchmark.java:14)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public java.lang.Iterable com.sun.tools.javac.file.JavacFileManager.listLocationsForModules(javax.tools.JavaFileManager$Location) throws java.io.IOException accessible: module jdk.compiler does not "exports com.sun.tools.javac.file" to unnamed module @15bbf42f
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:388)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:364)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:312)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
at net.openhft.compiler.MyJavaFileManager.invokeNamedMethodIfAvailable(MyJavaFileManager.java:214)
at net.openhft.compiler.MyJavaFileManager.listLocationsForModules(MyJavaFileManager.java:77)
at jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$WrappedJavaFileManager.listLocationsForModules(ClientCodeWrapper.java:410)
at jdk.compiler/com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.hasNext(ModuleFinder.java:139)
at jdk.compiler/com.sun.tools.javac.code.ModuleFinder.scanModulePath(ModuleFinder.java:295)
at jdk.compiler/com.sun.tools.javac.code.ModuleFinder.findAllModules(ModuleFinder.java:188)
at jdk.compiler/com.sun.tools.javac.comp.Modules.getUnnamedModuleCompleter(Modules.java:1458)
at jdk.compiler/com.sun.tools.javac.comp.Modules.setCompilationUnitModules(Modules.java:477)
at jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:271)
at jdk.compiler/com.sun.tools.javac.comp.Modules.initModules(Modules.java:237)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.initModules(JavaCompiler.java:1058)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:949)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
... 12 more
How do I fix it?