gpt4 book ai didi

java - ClassNotFoundException 与 ant 的 java 任务和类路径

转载 作者:行者123 更新时间:2023-12-02 07:47:00 25 4
gpt4 key购买 nike

我正在尝试在 eclipse 中编译并运行一个简单的 java 类。编译任务工作正常,并且由于我没有指定目标文件夹,因此构建文件与源位于同一目录中。没关系,目前我需要的只是学习如何使用 main() 方法运行该类。

我尝试过使用类的完全限定名称(带有包名称等)和单独的类名,但总是得到 java.lang.ClassNotFoundException

    Buildfile: C:\Users....\build.xml
run:
[java] java.lang.NoClassDefFoundError: code/control/MyClass
[java] Caused by: java.lang.ClassNotFoundException: code.control.MyClass
[java] at java.net.URLClassLoader$1.run(Unknown Source)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
[java] Could not find the main class: code.control.MyClass. Program will exit.
[java] Exception in thread "main"
[java] Java Result: 1
compile:
default:
BUILD SUCCESSFUL
Total time: 234 milliseconds

下面是从我的 build.xml 文件中获取的目标:

<target name="default" depends="compile" description="learn">

</target>

<target name="compile" depends="run">
<javac srcdir="src/" />
</target>

<target name="run">
<java classname="code.control.MyClass" fork="true"/>
</target>

我不明白为什么找不到该类。 MyClass 包含 main() 方法,因为我没有指定类路径,所以它应该查看当前目录,即 src/对吗?

开发目录是通常的eclipse文件结构:

项目名称/src/code/control/MyClass

如果是类路径问题我该如何解决?我总是难以理解“将其放在你的类路径上”的概念......如果有人可以在 ant 上下文中提供一些关于类路径的解释,我将非常感激。

感谢您对此的任何帮助。 ant的版本是1.7.0

最佳答案

classpath是 Java 运行时查找 .class 文件的位置,类似于操作系统使用 PATH 变量查找可执行文件的方式。

在构建脚本中尝试一下:

   <target name="run">
<java fork="true" classname="code.control.MyClass">
<classpath>
<path location="src/"/>
</classpath>
</java>

有一个HelloWorld version for ant它逐步介绍了如何使用 ant 构建 Java 程序。

关于java - ClassNotFoundException 与 ant 的 java 任务和类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1129449/

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