一尘不染

为什么出现此javac:“找不到文件”错误?

linux

在CentOS 5
linux上使用一些基本的Java应用程序,我已classpath设置为指向home/pathToJava/bin其中包含javacjava

我有.java文件home/pathToFolderA/src

home/pathToFolderB/gen-java

当我运行javac,并javahome/pathToFolderA/src一切完美

但是,当我运行javac从内home/pathToFolderB/gen-javafileName.java我得到一个文件未找到错误,特别是

javac: file Not found: fileName.java
Usage: javac <options> <source files>

为什么会这样呢?

感谢所有帮助


阅读 426

收藏
2020-06-02

共1个答案

一尘不染

您不应将 类路径 设置为指向您的JDK bin目录-而是应该是 PATH
环境变量,它与类路径的作用不同。(classpath定义了包含已编译的Java .class代码的jar和目录的列表;
PATH变量定义了路径的列表,外壳程序需要在其中查找和定位在当前目录中找不到它们时要执行的程序,因此,如果您例如zip- 类型-
它将查找其中定义的所有目录,PATH并找出该zip程序位于/usr/bin)。其次,如果要从这两个目录编译源,则需要指定:

  • 来源所在的所有路径(home/pathToFolderA/srchome/pathToFolderB/gen-java
  • 生成编译的.class文件的路径
  • 在类路径中指定您可以在源文件中使用的任何库

总结起来,编译起来会像这样:

javac -d /home/pathToFolderWithResultsOfCompilation -classpath /path/to/some.jar:/path/to/another.jar home/pathToFolderA/src/*.java home/pathToFolderB/gen-java/*.java

并运行您的编译程序:

java -classpath /path/to/some.jar:/path/to/another.jar:/home/pathToFolderWithResultsOfCompilation full.name.of.your.Java
2020-06-02