在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-java中运行fileName.java时,出现文件未找到错误,特别是

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

为什么会这样呢?

感谢所有帮助

最佳答案

您不应该将类路径设置为指向您的JDK bin目录-而是应该是 PATH 环境变量,它为类路径提供了不同的用途。 (classpath定义了一个包含已编译的Java .class代码的jar和目录的列表; PATH变量定义了一个路径列表,在当前目录中找不到它们时,shell需要查找和定位要执行的程序才能在其中查找它们。例如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
    

    10-04 23:33
    查看更多