gpt4 book ai didi

Java 类路径问题

转载 作者:行者123 更新时间:2023-12-02 08:29:53 25 4
gpt4 key购买 nike

我有两门课:

MyApplication
Library

该库已编译为 Library.class,源代码不再可用。我现在正在尝试从源代码编译 MyApplication。 MyApplication 依赖于库。该库的包名称为 org.myCompany。我尝试将类路径设置为以下内容:

set CLASSPATH=C:\java\project\org\myCompany\Library.class;.

产生以下 javac 编译器错误消息:

MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();

所以我将类路径更改为:

set CLASSPATH=C:\java\project\;.

产生了完全相同的错误消息。

如何设置 Windows 类路径以包含 Library.class 文件?它是否应该指向包含 org\myCompany 子文件夹的文件夹?还是直接指向类文件?或者包含类文件的文件夹(即使该类位于包中并且属于子文件夹中)?

我在设置命令后执行了 echo %CLASSPATH% 并且类路径设置正确。我也做了一个ant build.xml文件,也遇到了同样的问题。事实上,ant -verbose 确认我的类路径设置正确。

最佳答案

首先:强烈建议不要使用 CLASSPATH 环境变量。最好的事情是让你忘记它的存在。使用 -cp 命令行开关或类似方法来设置类路径。

其次,每个类路径条目代表类加载器根据包层次结构开始查找 .class 的位置,即它将查找类 org.myCompany.Library 位于任何类路径条目的子文件夹 org/myCompany 中。

因此,如果

  • 您添加一个类路径条目C:\java\project\
  • 并且有一个类文件C:\java\project\org\myCompany\Library.class
  • 它实际上是 org.myCompany 包的一部分(这里大小写很重要!)
  • 并且您的 MyApplication 类有一个 import org.myCompany.Library;

那么它确实应该有效。

关于Java 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3685260/

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