gpt4 book ai didi

java编译: classname Vs classname with file-extension

转载 作者:行者123 更新时间:2023-12-01 07:35:58 27 4
gpt4 key购买 nike

从命令行运行基本的 java 程序需要 3 个步骤:

  1. 编写代码:

    公共(public)类HelloWorld {公共(public)静态无效主(字符串[] args){ System.out.println("你好,世界");}}

  2. javac HellWorld.java编译,它会检查错误并生成HelloWorld.class文件。

  3. 通过提供类名来运行代码 --> java HelloWorld

现在,我很想知道为什么:

java HelloWorld 可以工作,但是当我们给出类文件的完整路径时,它会抛出错误

$ java HelloWorld.class 
Error: Could not find or load main class HelloWorld.class

如果我们只给出类名与带有文件扩展名的类名有什么区别?

最佳答案

What does it make a difference if we give just the classname Vs classname with file-extension?

您提供给 java 二进制文件的参数并不意味着是文件名。它应该是一个类名。因此,特别是,如果您尝试在 foo.bar 包中启动一个名为 Baz 的类,您将运行:

java foo.bar.Baz

同样,如果您尝试运行 java HelloWorld.class ,就好像您尝试在包 HelloWorld< 中运行一个名为 class 的类,这是不正确的。

基本上,您不应该将参数视为文件名 - 您应该将其视为完全限定的类名。哎呀,文件系统上甚至可能没有一个简单的 Baz.class 文件 - 它可能隐藏在 jar 文件中。

关于java编译: classname Vs classname with file-extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com