I haven't programmed much in Java, I once had to write a few applications for school, and it wasn't a problem to run it, now I would like to develop it and look for some other projects, (MyLocalTon to be more precise) I see that it uses Java 11, from what I read Maven is from Java 17, and I have no idea how to run such a project, where to get information on how to run it, where I can learn such things. I have a pom.xml file that points to Maven, but during installation, when I have Java 11, it throws a lot of errors, then I change it to 17, it seems like something is happening, but I still have errors. I've already downloaded sdkman so I don't have to mess with the versions too much. I have a question: does anyone know where I can find answers to my question? Here's a link to the project I'm interested in: https://github.com/neodix42/MyLocalTon
I tried
mvn install mvn clean javafx:run
on java 11, java 17 and java 22
but it doesn't work for everyone
I would like to point out that I am using Linux, if it makes any difference
[ERROR] bad class file: /.../openjfx/javafx-graphics/21/javafx-graphics-21-win.jar(/javafx/scene/Parent.class)
[ERROR] class file has wrong version 61.0, should be 55.0
[ERROR] Please remove or make sure it appears in the correct subdirectory of the classpath.
this is not spring
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ton</groupId>
<artifactId>MyLocalTon</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<ton_branch>master</ton_branch>
<maven.compiler.release>11</maven.compiler.release>
<maven.compiler.version>3.8.1</maven.compiler.version>
<maven.clean.plugin.version>3.1.0</maven.clean.plugin.version>
<maven.assembly.plugin.version>3.6.0</maven.assembly.plugin.version>
<javafx.maven.plugin.version>0.0.8</javafx.maven.plugin.version>
<apache.commons.lang3.version>3.9</apache.commons.lang3.version>
<openjfx.version>21</openjfx.version>
<jfoenix.version>9.0.4</jfoenix.version>
<commons-io.version>2.7</commons-io.version>
<commons-codec.version>1.14</commons-codec.version>
<lombok.version>1.18.30</lombok.version>
<jupiter.version>5.7.1</jupiter.version>
<junit.version>4.13.2</junit.version>
<assertj.version>3.19.0</assertj.version>
<concurrent-junit.version>1.0.2</concurrent-junit.version>
<gson.version>2.8.6</gson.version>
<logback.version>1.4.12</logback.version>
<zip4j.version>2.11.3</zip4j.version>
<jetty.version>11.0.14</jetty.version>
<jprocesses.version>1.6.5</jprocesses.version>
<richtextfx.version>0.10.7</richtextfx.version>
<ton4j.version>0.1.4</ton4j.version>
<objectdb.version>2.8.6</objectdb.version>
<javax.persistence.version>2.1.0</javax.persistence.version>
<jta.version>1.1</jta.version>
<log4j.version>2.17.1</log4j.version>
<linux.amd64.ton.binaries.uri>
https://cicd.neodix.io/view/pipelines/job/${ton_branch}-pipeline/lastSuccessfulBuild/artifact/artifacts/ton-x86-64-linux-portable.zip
</linux.amd64.ton.binaries.uri>
<mac.amd64.ton.binaries.uri>
https://cicd.neodix.io/view/pipelines/job/${ton_branch}-pipeline/lastSuccessfulBuild/artifact/artifacts/ton-x86-64-macos-portable.zip
</mac.amd64.ton.binaries.uri>
<win.amd64.ton.binaries.uri>
https://cicd.neodix.io/view/pipelines/job/${ton_branch}-pipeline/lastSuccessfulBuild/artifact/artifacts/ton-x86-64-windows.zip
</win.amd64.ton.binaries.uri>
</properties>
<repositories>
<repository>
<id>objectdb</id>
<name>ObjectDB Repository</name>
<url>https://m2.objectdb.com</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.googlecode.lanterna</groupId>
<artifactId>lanterna</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>io.github.neodix42</groupId>
<artifactId>smartcontract</artifactId>
<version>${ton4j.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${openjfx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${openjfx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
<version>${openjfx.version}</version>
</dependency>
<dependency>
<groupId>org.fxmisc.richtext</groupId>
<artifactId>richtextfx</artifactId>
<version>${richtextfx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${openjfx.version}</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${openjfx.version}</version>
<classifier>linux</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${openjfx.version}</version>
<classifier>mac</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${openjfx.version}</version>
<classifier>mac-aarch64</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${openjfx.version}</version>
<classifier>win</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${openjfx.version}</version>
<classifier>linux</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${openjfx.version}</version>
<classifier>mac</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${openjfx.version}</version>
<classifier>mac-aarch64</classifier>
</dependency>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>${jfoenix.version}</version>
</dependency>
<dependency>
<groupId>com.fifesoft</groupId>
<artifactId>rsyntaxtextarea</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${apache.commons.lang3.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>com.vmlens</groupId>
<artifactId>concurrent-junit</artifactId>
<version>${concurrent-junit.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>${zip4j.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- database -->
<dependency>
<groupId>com.objectdb</groupId>
<artifactId>objectdb</artifactId>
<version>${objectdb.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>${javax.persistence.version}</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>${jta.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.clean.plugin.version}</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>org.jprocesses</groupId>
<artifactId>jProcesses</artifactId>
<version>${jprocesses.version}</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<release>${maven.compiler.release}</release>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.maven.plugin.version}</version>
<configuration>
<options>
<option>--add-opens</option>
<option>javafx.graphics/javafx.css=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.base/com.sun.javafx.runtime=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.base/com.sun.javafx.binding=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.base/com.sun.javafx.event=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED</option>
<option>--add-opens</option>
<option>javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED</option>
<option>--add-exports</option>
<option>javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix</option>
<option>--add-exports</option>
<option>javafx.controls/com.sun.javafx.scene.control=com.jfoenix</option>
<option>--add-exports</option>
<option>javafx.base/com.sun.javafx.binding=com.jfoenix</option>
<option>--add-exports</option>
<option>javafx.graphics/com.sun.javafx.stage=com.jfoenix</option>
<option>--add-exports</option>
<option>javafx.base/com.sun.javafx.scene=com.jfoenix</option>
</options>
<mainClass>org.ton.main.App</mainClass>
</configuration>
<executions>
<execution>
<!-- Default configuration for running -->
<id>default-cli</id>
<configuration>
<mainClass>org.ton.main.App</mainClass>
</configuration>
</execution>
<execution>
<!-- Configuration for debugging, use as >mvn clean javafx:run@debug -->
<id>debug</id>
<configuration>
<options>
<option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000</option>
</options>
<mainClass>org.ton.main.App</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.clean.plugin.version}</version>
<configuration>
<filesets>
<fileset>
<directory>myLocalTon</directory>
</fileset>
<fileset>
<directory>testDB</directory>
</fileset>
<fileset>
<directory>${basedir}/src/main/resources/</directory>
<includes>
<include>*tonlibjson*</include>
</includes>
</fileset>
<fileset>
<directory>${basedir}/src/main/resources/org/ton/binaries/</directory>
<includes>
<include>*ton-linux*</include>
<include>*ton-mac*</include>
<include>*ton-win*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.7.1</version>
<executions>
<execution>
<id>ton-linux-x86_64</id>
<phase>generate-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<skipCache>false</skipCache>
<uri>
${linux.amd64.ton.binaries.uri}
</uri>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}/binaries-linux-x86_64</outputDirectory>
</configuration>
</execution>
<execution>
<id>ton-mac-x86_64</id>
<phase>generate-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<skipCache>false</skipCache>
<uri>${mac.amd64.ton.binaries.uri}</uri>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}/binaries-mac-x86_64</outputDirectory>
</configuration>
</execution>
<execution>
<id>ton-win-x86_64</id>
<phase>generate-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<skipCache>false</skipCache>
<uri>${win.amd64.ton.binaries.uri}</uri>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}/binaries-windows-x86_64</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven.clean.plugin.version}</version>
<executions>
<execution>
<id>copy-final-ton-linux-x86_64_to_resources</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${basedir}/src/main/resources/org/ton/binaries">
<fileset
dir="${project.build.directory}" includes="ton-linux-x86_64.zip"/>
</copy>
<copy file="${project.build.directory}/binaries-linux-x86_64/libtonlibjson.so"
tofile="${basedir}/src/main/resources/tonlibjson.so"/>
</target>
</configuration>
</execution>
<execution>
<id>copy-final-ton-mac-x86_64_to_resources</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${basedir}/src/main/resources/org/ton/binaries">
<fileset
dir="${project.build.directory}" includes="ton-mac-x86_64.zip"/>
</copy>
<copy file="${project.build.directory}/binaries-mac-x86_64/libtonlibjson.dylib"
tofile="${basedir}/src/main/resources/libtonlibjson.dylib"/>
</target>
</configuration>
</execution>
<execution>
<id>copy-final-ton-win-x86_64_to_resources</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${basedir}/src/main/resources/org/ton/binaries">
<fileset dir="${project.build.directory}" includes="ton-win-x86_64.zip"/>
</copy>
<copy file="${project.build.directory}/binaries-windows-x86_64/tonlibjson.dll"
tofile="${basedir}/src/main/resources/tonlibjson.dll"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven.assembly.plugin.version}</version>
<executions>
<execution>
<id>create-final-linux-x86_64-binary-package</id>
<phase>generate-resources</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>ton-linux-x86_64</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/linux-x86_64.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>create-final-mac-x86_64-binary-package</id>
<phase>generate-resources</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>ton-mac-x86_64</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/mac-x86_64.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>create-final-win-x86_64-binary-package</id>
<phase>generate-resources</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>ton-win-x86_64</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/win-x86_64.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>MyLocalTon</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>org.ton.main.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
You can't run JavaFX 22 on Java 11 -> it is not supported (and won't work as expected).
Gluon provides a table for supported Java versions required for major JavaFX releases: