Java编译UNIX-类路径用法

时间:2018-10-23 22:52:42

标签: java compilation classpath

让我们假设一个项目的以下文件夹结构: ProjectName / src / package_name

所有需要编译的源文件都在 package_name 文件夹中。

尝试使用java ClassName命令从 package_name 文件夹编译程序时,发生错误( java.lang.NoClassDefFoundError )。

另一方面,在 src 文件夹(java package_name/ClassName)中使用的类比命令是正确的。

在我的理解中,这是因为

  

如果未使用-classpath和-cp且未设置CLASSPATH,则                 用户类路径由当前目录(。)组成。

但是,虽然在 ProjectName / src / package_name 中,java -cp .. ClassName会产生上述错误,尽管我认为在上面的一个目录中它应该等效于java -cp . package_name/ClassName

>

类似地,当尝试从光盘上的不同位置(使用本地路径和绝对路径)运行程序时,我遇到了相同的错误。

知道为什么吗?

编辑:

令人惊讶的是,命令java -cp .. package_name/ClassName(以及与之对应的'。'会产生相同的结果)现在引发不同的错误。在 ProjectName / files 中,我的程序正在读取一些.txt文件,上述命令会引发FileNotFoundException,而src目录中的java package_name/ClassName不会。这意味着运行文件的目录会影响正在计算相对路径的位置。是吗?

0 个答案:

没有答案