【问题标题】:Compiling java program using javac from command prompt从命令提示符使用 javac 编译 java 程序
【发布时间】:2016-05-16 17:41:35
【问题描述】:

我有安装 jdk1.8.0_91 和 jre1.8.0_91 的新笔记本电脑。 两者都在“C:\Program Files\Java”文件夹中。 我没有设置任何类路径或任何环境变量。 我编写了一个 HelloWorld.java 程序并将其保存在“C:\my Data”文件夹中。 然后我使用 cmd 进入命令提示符。 然后我将当前目录更改为“C:\Program Files\Java\jdk1.8.0_91\bin”..因为这里是 javac.exe

然后尝试编译我的 HelloWorld 程序并给出以下错误 -

C:\Program Files\Java\jdk1.8.0_91\bin>javac -sourcepath C:\my Data\HelloWorld.java
javac: invalid flag: Data\HelloWorld.com
Usage: javac <options> <source files>
use -help for a list of possible options

我不确定我是否正确使用了“源路径”...

我应该如何告诉编译器我的源文件在哪里?(我想在不设置任何类路径或任何环境变量的情况下解决这个问题)

【问题讨论】:

    标签: java command-prompt javac


    【解决方案1】:

    改用这个...

    javac -sourcepath "C:\my Data" "C:\my Data\HelloWorld.java"
    

    sourcepath 参数允许您指定源文件所在的目录。根据 javac 命令行输出:

    -sourcepath 指定查找输入源文件的位置

    后面的参数指定要编译的实际 Java 文件。考虑到您的路径中有空格,您将需要 " 围绕参数。尽可能避免路径中的空格以避免此问题。

    【讨论】:

    • 嗨 Mano,当我使用 java.exe 执行类文件时……它再次给我一个错误……你能协助……再一次 :).. .C:\Program Files\Java\jdk1.8.0_91\bin>java C:\myData\HelloWorld 错误:找不到或加载主类 C:\myData\HelloWorld
    • 你不这么称呼它。您可以通过其完全限定的类名来调用它,例如java com.example.HelloWorld。你必须用你自己的替换我的示例类名。请记住,您可能需要将 java 指向类文件的位置,例如java -cp directory/where/classfiles/exist com.example.HelloWorld
    【解决方案2】:

    -sourcepath 是一个 PATH,您提供的文件名不是 java 文件,这是无效的。来自文档:

    -sourcepath sourcepath

    Specify the source code path to search for class or interface
    definitions. As with the user class path, source path entries are
    separated by colons (:) and can be directories, JAR archives, or ZIP
    archives. If packages are used, the local path name within the 
    directory or archive must reflect the package name.
    

    [编辑:OP 在问题中将文件名更改为 .java,正如另一个答案所述,它需要引号。]

    【讨论】:

      【解决方案3】:

      您需要将源路径放在引号中,以便命令行将其作为单个参数处理。源路径也必须是您的目录,而不是文件:

      javac -sourcepath "C:\my Data"
      

      【讨论】:

      • 嗨,AR,我尝试了引号但仍然给出.. javac:没有源文件用法:javac 使用 -help 获取可能的选项列表
      【解决方案4】:

      路径 C:\my Data\HelloWorld.java 中有空间,因此出现错误。

      路径请用“”(双引号)括起来

      【讨论】:

      • 感谢 Anand 抽出时间回复……但我使用的语法错误……这很好……javac -sourcepath "C:\my Data" "C:\我的数据\HelloWorld.java"
      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 2011-04-05
      相关资源
      最近更新 更多