gpt4 book ai didi

java - 无法找到或加载主类 Java

转载 作者:行者123 更新时间:2023-11-30 08:46:40 24 4
gpt4 key购买 nike

晚上好 Stack Overflow!

我几天前开始学习 Java,但由于我的计算机有点慢,所以我没有使用 IDE。所以,我决定使用 Sublime Text,并在 cmd 上使用 ant 编译东西,因为这似乎是最合理的做法。

今天我开始(至少尝试过)学习来自 ThinMatrix 的一系列 LWJGL 教程(真的很酷),但我无法解决每次尝试编译 '项目'。

这是我项目的结构:

  • 刘文杰

    • 来源
      • com
        • 游戏
          • 测试
            MainGameLoop.java
          • 渲染引擎
            显示管理器.java

    build.xml

女士们先生们……build.xml(遵循 Ant 的官方 HelloWorld 教程):

<project name="LWJGL" basedir="." default="main">

<property name="src.dir" value="src"/>

<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="lib.dir" value="lib"/>
<property name="jar.dir" value="${build.dir}/jar"/>

<property name="main-class" value="com.game.test.MainGameLoop"/>

<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar" />

</path>

<target name="clean">
<delete dir="${build.dir}"/>
</target>

<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" classpathref="classpath" />
</target>

<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>

<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
<jvmarg value="-Djava.library.path=lib/natives-win" />
</java>
</target>

<target name="clean-build" depends="clean,jar"/>

<target name="main" depends="clean,run"/>

每次我在命令行上运行 ant 时,在我的项目的根文件夹中,我得到这个:

[java] Error: Could not find or load main class com.game.test.MainGameLoop
[java] Java Result: 1

我正在努力理解这的根本问题是什么,我有点性虐待了 Google 搜索,试图在 Java 论坛、博客甚至这里找到答案...

我通常不喜欢用菜鸟问题填充 Stack Overflow,但我不得不承认我不知道该怎么做。

提前致谢!

最佳答案

您的代码依赖于库。您已成功将库添加到类路径中以编译您的代码,并因此成功创建了包含您的类的可执行 jar 文件。但是这些类依赖于库来运行。并且在运行 jar 文件时,您不会在任何地方指定 Java 除了 jar 文件之外还应该在库中查找类。

参见 Generate manifest class-path from <classpath> in Ant了解如何将类路径条目添加到可执行 jar 文件的 list 中。注意:库的路径必须与 jar 的路径相关。

Ant 有点过时了。如果我是你,我会尝试使用 gradle,它有一个简洁的应用程序插件,可以为你完成所有这些,以及更多。

关于java - 无法找到或加载主类 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com