【问题标题】:package does not work and jvm does not recognise classes [duplicate]包不起作用,jvm 无法识别类 [重复]
【发布时间】:2014-02-20 02:32:10
【问题描述】:

在我的第一个 Java 作业中,我制作了一个基于控制台的银行系统。如果我使用默认包但当我添加一个

   package bank;

在所有类的顶部,它找不到类并且有很多错误。 我该如何解决?

我在谷歌上搜索了很多,但不明白这个东西。

cmd 路径是...

C:\Users\Shah\Desktop\Assignment1\src\Bank.java and other classes are also in the same folder.

请帮助我理解这件事

我试过了

     javac *.java

它编译了

但是当我尝试运行字节码时

     java Bank

它给出java.Lang.NoClassDefFound 错误

【问题讨论】:

  • 编译的时候,是把那个包加到类路径中了吗?
  • @Makoto 我正在尝试添加类路径,但它给出了未定义的错误类路径

标签: java package javac


【解决方案1】:

如果你刚刚在classes.java中添加了包行,

package bank;

那么你需要通过添加一个名为bank的新文件夹来更改你的应用程序的结构,然后你classes.java你已经添加了链接包。

所以你的 cmd 路径应该是这样的:

C:\Users\Shah\Desktop\Assignment1\src\bank\Bank.java

【讨论】:

  • 我添加了银行文件夹并在其中添加了所有类,但它仍然无法正常工作
  • 你还需要检查我上面提到的cmd路径。
  • 我把它改到银行
  • 根据您的更新,当您尝试 javac *.java 时,您是在告诉编译器完成任何包中存在的任何类,但是当尝试 javac Bank 时,考虑到默认包,我相信如果你说javac bank.Bank它会工作,你必须告诉编译器从哪个包编译类。
【解决方案2】:

我认为您需要在 src 文件夹下创建与 bank 包对应的另一个文件夹“bank”。 来源/银行

将所有类放在定义package bank;src/bank

你也可以使用javac com\pack1\pack2\one\*.java com\pack1\pack2\two\.*java编译多个文件

然后尝试运行。


例如下图显示了包 pack1,其中包含一个带有包定义的 Test.java 类

欲了解更多信息refer this question

【讨论】:

    猜你喜欢
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多