-2

My jar file with a JavaFX program is not executable. When I call it with java -jar the following error comes:

Error: Main class com.ersatzteillager.Main could not be found or loaded. Cause: java.lang.ClassNotFoundException: com.ersatzteillager.Main

But the class Main is in the JAR. Please help.

It runs perfect when I run it with IntelliJ Idea.

If I change the file extension from .jar to .zip, the folder "ersatzteillager" is located in the folder "com" and in this folder the Main.class file is located.

Output from jar tvf

    0 Thu Aug 10 07:42:30 CEST 2023 com/ersatzteillager/
  8367 Wed Aug 09 11:36:28 CEST 2023 com/ersatzteillager/artikel.fxml
   598 Tue Aug 01 15:27:52 CEST 2023 com/ersatzteillager/artikelbild.fxml
  1451 Wed Aug 09 16:05:22 CEST 2023 com/ersatzteillager/ArtikelbildController.class
 14909 Wed Aug 09 16:16:04 CEST 2023 com/ersatzteillager/ArtikelController.class
  2915 Mon Aug 07 11:54:30 CEST 2023 com/ersatzteillager/auftragsart.fxml
  2873 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/AuftragsartController.class
  6125 Mon Aug 07 11:55:06 CEST 2023 com/ersatzteillager/besitzwechsel.fxml
  2443 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/BesitzwechselController.class
 73188 Wed Aug 09 16:05:08 CEST 2023 com/ersatzteillager/bestKundenvorgang.fxml
 81488 Thu Aug 10 07:42:28 CEST 2023 com/ersatzteillager/BestKundenvorgangController.class
  2891 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/DateiLog.class
  2302 Fri Aug 04 11:34:46 CEST 2023 com/ersatzteillager/datum.fxml
  1936 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/DatumController.class
 17042 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/Email.class
  2277 Mon Aug 07 11:55:48 CEST 2023 com/ersatzteillager/intern.fxml
  2541 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/InternController.class
  1978 Mon Aug 07 11:57:20 CEST 2023 com/ersatzteillager/konstruktion.fxml
  2166 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/KonstruktionController.class
  2397 Tue Aug 08 08:39:32 CEST 2023 com/ersatzteillager/konstruktionsinfos.fxml
  3316 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/KonstruktionsinfosController.class
 17961 Wed Aug 09 11:26:46 CEST 2023 com/ersatzteillager/kundendetailsAnzeigen.fxml
  6882 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/KundendetailsController.class
  3012 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/Launch.class
   528 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/Main.class
 28912 Wed Aug 09 11:16:24 CEST 2023 com/ersatzteillager/main.fxml
 40634 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/MainController.class
  3738 Tue Aug 08 07:13:16 CEST 2023 com/ersatzteillager/maschinen.fxml
  2460 Tue Aug 08 08:39:32 CEST 2023 com/ersatzteillager/maschinenaufgaben.fxml
  3203 Wed Aug 09 16:05:24 CEST 2023 com/ersatzteillager/MaschinenaufgabenController.class
  5721 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/MaschinenController.class
  1601 Mon Aug 07 11:57:56 CEST 2023 com/ersatzteillager/neuerKundenvorgang.fxml
  1839 Wed Aug 09 16:05:26 CEST 2023 com/ersatzteillager/NeuerKundenvorgangController.class

Also there are the JavaFX classes in the jar

javafx/scene/media/
  1037 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$1.class
  1040 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$2.class
  1039 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$3.class
  1028 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$4.class
  1047 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$5.class
  1147 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip$6.class
  4507 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioClip.class
  1245 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioEqualizer$1.class
  2545 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioEqualizer$Bands.class
  3519 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioEqualizer.class
   183 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioSpectrumListener.class
   638 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/AudioTrack.class
  1267 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/EqualizerBand$1.class
  1249 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/EqualizerBand$2.class
  1220 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/EqualizerBand$3.class
  2158 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/EqualizerBand.class
  1008 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Media$1.class
  1040 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Media$2.class
  1489 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Media$InitLocator.class
  1681 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Media$_MetadataListener.class
 10942 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Media.class
  2427 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaErrorEvent.class
  1580 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaException$Type.class
  4333 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaException.class
   690 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaMarkerEvent.class
  1038 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$1.class
   701 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$10.class
  1378 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$11.class
  1733 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$12.class
  1743 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$13.class
  1747 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$14.class
  1787 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$15.class
  1070 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$2.class
   979 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$3.class
  1605 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$4.class
  1524 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$5.class
  1530 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$6.class
  1657 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$7.class
  1655 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$8.class
  1665 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$9.class
  1389 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$InitMediaPlayer.class
  2025 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$MarkerMapChangeListener.class
  2674 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$RendererListener.class
  1433 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$Status.class
  1884 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_BufferListener.class
  1893 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_MarkerListener.class
   832 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_MediaErrorListener.class
  4313 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_PlayerStateListener.class
  1613 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_PlayerTimeListener.class
  1997 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_SpectrumListener.class
  2100 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer$_VideoTrackSizeListener.class
 32136 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayer.class
  1799 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaPlayerShutdownHook.class
  2043 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaTimerTask.class
  1256 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$1.class
  1118 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$10.class
  2930 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$2.class
  1133 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$3.class
  1197 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$4.class
   957 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$5.class
  1150 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$6.class
  1150 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$7.class
  1168 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$8.class
  1171 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$9.class
  1066 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$MediaErrorInvalidationListener.class
   734 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView$MediaViewFrameTracker.class
 16983 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/MediaView.class
  3766 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/NGMediaView.class
   329 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/SubtitleTrack.class
  2275 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/Track.class
   809 Tue Jul 18 15:46:46 CEST 2023 javafx/scene/media/VideoTrack.class

Thanks in advance.

l_lessi06
  • 1
  • 3
  • 2
    It may be in the JAR but is it there under the path `com/ersatzteillager/Main.class`? – user207421 Aug 09 '23 at 09:57
  • Yes its under com/ersatzteillager/Main.class – l_lessi06 Aug 09 '23 at 10:02
  • Was the package in the .java file set correctly? I.e `package com.ersatzteillager;` – ODDminus1 Aug 09 '23 at 10:37
  • Yes it was set correctly to com.ersatzteillager – l_lessi06 Aug 09 '23 at 10:57
  • Is the class `public`? – user207421 Aug 09 '23 at 11:33
  • Yes, the class is public – l_lessi06 Aug 09 '23 at 11:47
  • I *think* you might either have to use `javapackager` or `jlink` and/or `jpackager` to do this. How did you create the jar? – g00se Aug 09 '23 at 12:06
  • There is a guide, you can follow, if you wish it work: [Maven Shade JavaFX runtime components are missing](https://stackoverflow.com/questions/52653836/maven-shade-javafx-runtime-components-are-missing) – jewelsea Aug 09 '23 at 13:45
  • I don't use Maven - the dependencies are included as library. – l_lessi06 Aug 09 '23 at 14:42
  • 2
    You say your .jar file contains com/ersatzteillager/Main.class. Java says it does not. Consider editing your question and showing us the output of `jar tf myapplication.jar`. – VGR Aug 09 '23 at 16:04
  • 2
    Note that it says "could not be found *or loaded*". If it can't find the superclass (which presumably is `Application`) then it won't be able to be loaded. So the likely scenario is that it cannot locate the JavaFX libraries. Creating an executable jar for a JavaFX application is not really supported, though it is just about possible; you are encouraged to create an application bundle using jlink and/or jpackage instead. See https://openjfx.io/openjfx-docs/ and link to "Runtime Images". There is a section at the bottom about creating a runnable fat jar. – James_D Aug 09 '23 at 18:05
  • 1
    “dependencies are included as library.” -> I don’t know how you do that. But whatever the method, it is probably wrong. – jewelsea Aug 09 '23 at 22:17
  • @James_D Shouldn´t be the output then `Error: JavaFX runtime components are missing, and are required to run this application` – l_lessi06 Aug 10 '23 at 06:32
  • in in Main.java a method **public static void main(String [] main)** or is **static** missing? – Maik Aug 10 '23 at 07:00
  • @Maik no the main method is as it should be also the static is not missing – l_lessi06 Aug 10 '23 at 07:02
  • @jewelsea In IntelliJ `Project Structure -> Libraries` – l_lessi06 Aug 10 '23 at 07:03
  • @VGR I have added the output from jar tf – l_lessi06 Aug 10 '23 at 07:04
  • 1
    Doesn't look like a `jar tvf` output to me. You have two classes on the same line twice, and there are no sizes or dates. Please paste the *exact* output. Not what you think it should be. Clearly it *isn't* what you think it should be. – user207421 Aug 10 '23 at 07:23
  • 1
    You get “JavaFX runtime components are missing, and are required to run this application” when you have the JavaFX Java components and the native components cannot be found. That is not your problem. You are not just missing JavaFX native components, you are missing *all* JavaFX components. Having JavaFX libraries added in Idea won’t help you when you try to execute code in a jar outside Idea. You need to follow the instructions previously linked by James if you want your app to work. Or you can try using your jar with a JRE that includes JavaFX, like Azul Zulu “JRE FX”. – jewelsea Aug 10 '23 at 07:40
  • @user207421 it was a output of `jar tvf` I have deleted the sizes and dates Now there's the unmodified output – l_lessi06 Aug 10 '23 at 08:51
  • @jewelsea but javafx is in the jar -> output form jar tvf – l_lessi06 Aug 10 '23 at 08:57
  • Is `javafx/application/Application.class` in your jar file? – VGR Aug 10 '23 at 12:11
  • @VGR Yes it is (jar tvf) – l_lessi06 Aug 11 '23 at 10:33

0 Answers0