by Anonymous » 21 Mar 2025, 09:04
Sie können mein gesamtes Projekt auf GitHub überprüfen. Ich verwende derzeit keine Abhängigkeitsmanager in meinen Projekten und möchte es so behalten. Ich benutze eine Bibliothek, die ich in Java gemacht habe, und ich benutze Javafx für GUI. Wie der Titel besagt, möchte ich meine App zu einer eigenständigen App machen, damit jemand sie ausführen kann, ohne dass Java installiert wird. Führen Sie meine Anwendung mit .Jar -Datei mit diesem Befehl aus: < /p>
Code: Select all
java --module-path %JAVAFX% --add-modules=javafx.controls,javafx.fxml -jar match_three_solver.jar
Ich versuche also, diesen Befehl JDEPS -S - -Module -PAD - % Javafx % match_three_solver.jar auszuführen, um zu überprüfen, welche Pakete ich in meinen JLink -Befehl einbeziehen muss, und es gibt mir diesen Fehler zurück:
Code: Select all
Exception in thread "main" java.lang.module.FindException: Error reading module: match_three_solver.jar
at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:351)
at java.base/jdk.internal.module.ModulePath.scan(ModulePath.java:238)
at java.base/jdk.internal.module.ModulePath.scanNextEntry(ModulePath.java:191)
at java.base/jdk.internal.module.ModulePath.findAll(ModulePath.java:167)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:521)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:607)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:561)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:537)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:50)
Caused by: java.lang.module.InvalidModuleDescriptorException: Main.class found in top-level directory (unnamed package not allowed in module)
at java.base/jdk.internal.module.ModulePath.toPackageName(ModulePath.java:720)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.zip.ZipFile$EntrySpliterator.tryAdvance(ZipFile.java:573)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at java.base/jdk.internal.module.ModulePath.jarPackages(ModulePath.java:621)
at java.base/jdk.internal.module.ModulePath.lambda$readJar$6(ModulePath.java:653)
at java.base/jdk.internal.module.ModuleInfo.doRead(ModuleInfo.java:311)
at java.base/jdk.internal.module.ModuleInfo.read(ModuleInfo.java:129)
at java.base/jdk.internal.module.ModulePath.readJar(ModulePath.java:652)
at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:332)
... 8 more
Wenn ich das richtig verstehe (ich weiß nicht wirklich, was ich mache, weil ich das zum ersten Mal mache) ... Ich habe eine nicht modulare .jar -Datei, sodass ich JDEPS nicht verwenden kann. Wenn ich den Befehl jdeps verwenden möchte, muss ich in meinem Projekt Modul-info.java haben. Mein
Problem ist, dass ich, wo ich Modul-info.java Datei erstelle ... Der Compiler beginnt mit schreienden Fehlern und er erkennt auch nicht Javafx Module:
Sie können mein gesamtes Projekt auf GitHub überprüfen. Ich verwende derzeit keine Abhängigkeitsmanager in meinen Projekten und möchte es so behalten. Ich benutze eine Bibliothek, die ich in Java gemacht habe, und ich benutze Javafx für GUI. Wie der Titel besagt, möchte ich meine App zu einer eigenständigen App machen, damit jemand sie ausführen kann, ohne dass Java installiert wird. Führen Sie meine Anwendung mit .Jar -Datei mit diesem Befehl aus: < /p>
[code]java --module-path %JAVAFX% --add-modules=javafx.controls,javafx.fxml -jar match_three_solver.jar
[/code]
Ich versuche also, diesen Befehl JDEPS -S - -Module -PAD - % Javafx % match_three_solver.jar auszuführen, um zu überprüfen, welche Pakete ich in meinen JLink -Befehl einbeziehen muss, und es gibt mir diesen Fehler zurück:
[code]Exception in thread "main" java.lang.module.FindException: Error reading module: match_three_solver.jar
at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:351)
at java.base/jdk.internal.module.ModulePath.scan(ModulePath.java:238)
at java.base/jdk.internal.module.ModulePath.scanNextEntry(ModulePath.java:191)
at java.base/jdk.internal.module.ModulePath.findAll(ModulePath.java:167)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:521)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:607)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:561)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:537)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:50)
Caused by: java.lang.module.InvalidModuleDescriptorException: Main.class found in top-level directory (unnamed package not allowed in module)
at java.base/jdk.internal.module.ModulePath.toPackageName(ModulePath.java:720)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.zip.ZipFile$EntrySpliterator.tryAdvance(ZipFile.java:573)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at java.base/jdk.internal.module.ModulePath.jarPackages(ModulePath.java:621)
at java.base/jdk.internal.module.ModulePath.lambda$readJar$6(ModulePath.java:653)
at java.base/jdk.internal.module.ModuleInfo.doRead(ModuleInfo.java:311)
at java.base/jdk.internal.module.ModuleInfo.read(ModuleInfo.java:129)
at java.base/jdk.internal.module.ModulePath.readJar(ModulePath.java:652)
at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:332)
... 8 more
[/code]
Wenn ich das richtig verstehe (ich weiß nicht wirklich, was ich mache, weil ich das zum ersten Mal mache) ... Ich habe eine nicht modulare .jar -Datei, sodass ich JDEPS nicht verwenden kann. Wenn ich den Befehl jdeps verwenden möchte, muss ich in meinem Projekt Modul-info.java haben. Mein [url=viewtopic.php?t=18916]Problem[/url] ist, dass ich, wo ich Modul-info.java Datei erstelle ... Der Compiler beginnt mit schreienden Fehlern und er erkennt auch nicht Javafx Module: