java - 在命令提示符下运行的 java 程序中使用 package 关键字

标签 java package command-prompt keyword

我是一名中级 Java 程序员,但我只有使用 NetBeans 等 IDE 来编写和运行程序的经验。我最近开始在文本编辑器中编写程序,以便通过 Windows 10 的命令提示符运行我的程序。

我使用命令提示符成功创建了 HelloWorld 程序,但对如何让它工作感到困扰。

最初我的代码是:

package helloworld;

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello, World!");
}

我将其保存为目录 C:\projects\myprojects\helloworld 中的 .java 文件。

然后我在命令提示符中键入以下命令:

cd C:\projects\myprojects\helloworld
set path=%path%;C:\Program Files\Java\jkd1.8.0_121\bin
javac HelloWorld.java
java -cp . helloworld.HelloWorld

这导致了错误:

错误:无法找到或加载主类HelloWorld

但是,一旦我重新编译了代码,省略了第一行

package.helloworld;

程序按预期运行。

为什么当第一行出现时命令提示符无法找到我的类。我尝试将目录更改为 C:\projects\myprojects,但也失败了。我怎样才能成功地编写一个程序

package helloworld;

包含行吗?

最佳答案

Elliott answered注释,包是类完全限定名称的一部分。您可以使用测试它

System.out.println(this.getClass().getCanonicalName());

打印出当前类名,包括包

要回答您的问题,您必须执行以下任一操作:
1- cd .. 然后 java -cp 。 helloworld.HelloWorld

2- java helloworld\HelloWorld

可能需要引用this作为 java -cp 详细示例。

关于java - 在命令提示符下运行的 java 程序中使用 package 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42406290/

相关文章:

java - 如何获取 Java 程序特定行的堆栈跟踪

java - 在 Controller 上使用 Spring PreAuthorize 后使用 AspectJ 进行审核

R 如何安装包 'graph' ?

Java新手问题: classes of the same package accessing one another?

c++ - 代码在 CLion 中编译,但不在命令提示符中

macos - Mac OSX 提示 git branch aware

java - 在远程服务器上执行 ssh 以跳转到另一台服务器并使用 Java 和 JSch 在那里执行进一步的命令

java - 映射 list<Entity> hibernate 的 Map 集合

linux - 有没有办法在设置dpkg控制文件时自动判断依赖关系?

javac命令提示符参数