quelea-projection / Quelea

Open source projection software for churches.
https://quelea.org
GNU General Public License v3.0
154 stars 145 forks source link

OpenJDK 8 error: Could not find or load main class org.quelea.windows.main.Main #655

Closed DeeTigIT closed 4 weeks ago

DeeTigIT commented 1 month ago

My objective Run the older Quelea crossplatform (cp) versions 2020.0 and 2021.0 on Windows with an OpenJDK jre-8 instead of the Oracle jre-1.8. So I can phase out Oracle jre on my testplatform.

Info Currently, I now have 4 jre's installed:

C:\Users\>where java C:\Program Files\Java\jre-1.8\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-11.0.23.9-hotspot\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-21.0.3.9-hotspot\bin\java.exe

Oracle jre-1.8 is used for quelea-2020.0 (cp) and quelea-2021.0 (cp) OpenJDK jre-11 and jre21 are used for quelea-2022.0 (cp) and later.

A cmd-file with the following contents starts Quelea 2020.0 succesfully with the Oracle jre:

set JAVA8BIN=C:\Program Files\Java\jre-1.8\bin rem set JAVA8BIN=C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin set PATH=%JAVA8BIN%;%PATH% cd C:\Program Files\Quelea-2020.0 call Quelea.bat pause

But when I change this cmd-file trying to switch to Adoptium EclipseTemurin jre-8:

rem set JAVA8BIN=C:\Program Files\Java\jre-1.8\bin set JAVA8BIN=C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin set PATH=%JAVA8BIN%;%PATH% cd C:\Program Files\Quelea-2020.0 call Quelea.bat pause

I get the following error:

C:\Program Files\Quelea-2020.0>call Quelea.bat

C:\Program Files\Quelea-2020.0>java -Dfile.encoding=UTF-8 -Dprism.dirtyopts=false -jar Quelea.jar Error: Could not find or load main class org.quelea.windows.main.Main

Note 1: The same happens with Quelea-2021.0 in combination with Adoptium EclipseTemurin jre-8. Note 2: I have similar scripts starting quelea-2022.0 (cp) and later using Adoptium EclipseTemurin jre-11 and jre-21 and they work without this error. Note 3: I saw that the manifest file in Quelea.jar contains this class (so it's there and can be found, I guess). Main-Class: org.quelea.windows.main.Main

Questions

berry120 commented 1 month ago

This is expected - it's because you need a version of the JDK that contains JavaFX, and (of the ones you've tried) only the Oracle one does. There are some others (such as the Zulu one here: https://www.azul.com/downloads/?version=java-8-lts&package=jdk-fx#zulu) - but they're rare.

On Tue, 4 Jun 2024 at 22:19, DeeTigIT @.***> wrote:

My objective Run the older Quelea crossplatform (cp) versions 2020.0 and 2021.0 on Windows with an OpenJDK jre-8 instead of the Oracle jre-1.8. So I can phase out Oracle jre on my testplatform.

Info Currently, I now have 4 jre's installed:

C:\Users>where java C:\Program Files\Java\jre-1.8\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-11.0.23.9-hotspot\bin\java.exe C:\Program Files\Eclipse Adoptium\jre-21.0.3.9-hotspot\bin\java.exe

Oracle jre-1.8 is used for quelea-2020.0 (cp) and quelea-2021.0 (cp) OpenJDK jre-11 and jre21 are used for quelea-2022.0 (cp) and later.

A cmd-file with the following contents starts Quelea 2020.0 succesfully with the Oracle jre:

set JAVA8BIN=C:\Program Files\Java\jre-1.8\bin rem set JAVA8BIN=C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin set PATH=%JAVA8BIN%;%PATH% cd C:\Program Files\Quelea-2020.0 call Quelea.bat pause

But when I change this cmd-file trying to switch to Adoptium EclipseTemurin jre-8:

rem set JAVA8BIN=C:\Program Files\Java\jre-1.8\bin set JAVA8BIN=C:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\bin set PATH=%JAVA8BIN%;%PATH% cd C:\Program Files\Quelea-2020.0 call Quelea.bat pause

I get the following error:

C:\Program Files\Quelea-2020.0>call Quelea.bat

C:\Program Files\Quelea-2020.0>java -Dfile.encoding=UTF-8 -Dprism.dirtyopts=false -jar Quelea.jar Error: Could not find or load main class org.quelea.windows.main.Main

Note 1: The same happens with Quelea-2021.0 in combination with Adoptium EclipseTemurin jre-8. Note 2: I have similar scripts starting quelea-2022.0 (cp) and later using Adoptium EclipseTemurin jre-11 and jre-21 and they work without this error. Note 3: I saw that the manifest file in Quelea.jar contains this class (so it's there and can be found, I guess). Main-Class: org.quelea.windows.main.Main

Questions

  • Can this Main-Class only be loaded in combination with the Oracle jre?
  • Is there perhaps a solution for this error without re-building the 2020.0 and 2021.0 crossplatform Quelea installation jar's?

— Reply to this email directly, view it on GitHub https://github.com/quelea-projection/Quelea/issues/655, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZ6JDLMUWAV34OKGCDEHKDZFYVM7AVCNFSM6AAAAABIZLG6SSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTIMZYGU2TIMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Thanks,

Michael

DeeTigIT commented 4 weeks ago

Thanks for this clarification.

I found a work-around for now mentioned in: https://github.com/adoptium/temurin-build/issues/577

Place a copy of the Oracle JavaFX file: c:\Program Files\Java\jre-1.8\lib\ext\jfxrt.jar

In the corresponding Adoptium EclipseTemurin jre-8 installation folder: c:\Program Files\Eclipse Adoptium\jre-8.0.412.8-hotspot\lib\ext\jfxrt.jar

Now I can use Adoptium EclipseTemurin jre-8 to run the older Quelea crossplatform (cp) versions 2020.0 and 2021.0 on Windows without the class error.

DeeTigIT commented 4 weeks ago

work-around