gpt4 book ai didi

java - 为什么java中的 `package`指令导致class文件无法运行?

转载 作者:可可西里 更新时间:2023-11-01 11:50:05 26 4
gpt4 key购买 nike

我正在尝试使用 package 指令编译 java 文件。但是,当将指令添加到最简单的程序 stub 时,出现错误并且无法再启动该程序...出了什么问题?

虚拟 0:

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

虚拟 1:

package de.train;

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

这是我的输出。一切都编译得很好。但是我无法运行类 de.train.Dummy1,尽管它显然在那里。

$ javac Dummy*.java
$ java Dummy0
Hello, world!
$ java Dummy1
Error: Could not find or load main class Dummy1
$ java de.train.Dummy1
Error: Could not find or load main class de.train.Dummy1
$ javap Dummy1.class
Compiled from "Dummy1.java"
class de.train.Dummy1 {
de.train.Dummy1();
public static void main(java.lang.String[]);
}

这个项目我在windows下。这是一些安全限制吗?如何删除它?

最佳答案

它正在寻找类 de.train.Dummy1,这意味着它将在目录 de\train< 中寻找名为 Dummy1.class 的文件 - 但文件实际上在当前目录中。

选项:

  • 将源代码保留在原处,但让编译器为您生成目录结构:

    > javac -d . Dummy*.java
    > java de.train.Dummy1
  • Dummy1.java 移动到 de\train 目录中:

    > javac de\train\Dummy*.java
    > java de.train.Dummy1

关于java - 为什么java中的 `package`指令导致class文件无法运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31962996/

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