【问题标题】:Trouble when trying to compile a .java file through javac尝试通过 javac 编译 .java 文件时出现问题
【发布时间】:2011-12-08 18:56:29
【问题描述】:

当尝试运行以下命令在 Windows 中编译 some_file.java

javac -classpath "some_class_path" "some_file.java"

它失败了,告诉我我没有传递任何源文件。

如果我做

cd "some_class_path"
javac -classpath "some_class_path" "some_file.java"

它工作正常。为什么?这让我很困扰,因为我想通过javac 从我的程序中编译一组.java 文件。

【问题讨论】:

  • 你的目录结构是什么样的?如果some_file.javasome_class_path 文件夹中,您需要在那里编译它,除非您使用的是包名。
  • 对问题进行了很好的抽象紧凑重写,但在这种情况下,实际的命令行很重要。不需要 cd 并且似乎缺少源的包路径。编译多个源可能会使用 -d 目录选项。
  • 不知道 -d 指令。它会派上用场的!

标签: java command-line javac


【解决方案1】:

如果您可以更具体地描述您的描述会有所帮助,但看起来您希望类路径也可用于查找您在命令行中指定的文件。那样不行 - 您指定的源文件必须是这些文件的确切路径。

【讨论】:

  • 您是否期望从拥有 380k 代表的人那里得到错误的答案? ;)
  • @AmirAfghani:这种情况发生的频率比我愿意承认的要多;)
【解决方案2】:

尝试使用 java 源文件的完整路径。无论如何,您能提供确切的命令和异常吗?

【讨论】:

    【解决方案3】:

    这不是类路径的用法。 classpath 选项指定在哪里找到依赖项,而不是源文件。只需编译使用:

    javac "path\file"
    

    (Windows 版本)

    【讨论】:

      【解决方案4】:

      我认为我没有看到任何明显的原因为什么它不起作用,但如果你在那个目录中,那么它就会起作用。也许引号不像我认为它们在 Windows 中那样起作用。无论哪种方式,我都建议您查看Ant,因为它是编译一组 java 文件的行业标准方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 2018-11-09
        • 2013-10-20
        相关资源
        最近更新 更多