运行java程序

问题描述 投票:0回答:1

我没有用Java编程太多,我曾经不得不为学校编写一些应用程序,运行它不是问题,现在我想开发它并寻找一些其他项目,(MyLocalTon是更准确地说)我看到它使用 Java 11,从我读到的 Maven 是来自 Java 17,我不知道如何运行这样的项目,从哪里获取有关如何运行它的信息,从哪里可以学习这些东西。我有一个指向 Maven 的 pom.xml 文件,但是在安装过程中,当我有 Java 11 时,它会抛出很多错误,然后我将其更改为 17,似乎发生了一些事情,但我仍然有错误。我已经下载了 sdkman,所以我不必过多地弄乱版本。我有一个问题:有人知道我在哪里可以找到问题的答案吗?这是我感兴趣的项目的链接:https://github.com/neodix42/MyLocalTon

我试过了

mvn安装 mvn clean javafx:运行

在 java 11、java 17 和 java 22 上

但并不适合所有人

我想指出我正在使用Linux,如果这有什么区别的话

[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.

这不是春天

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>

java maven debugging javafx compiler-errors
1个回答
0
投票

您无法在 Java 11 上运行 JavaFX 22 -> 它不受支持(并且不会按预期工作)。

Gluon 提供了 主要 JavaFX 版本所需的受支持 Java 版本表

JavaFX 版本 所需的最低 Java 版本
11 - 19 11
20 - 23 17
© www.soinside.com 2019 - 2024. All rights reserved.