使用类路径通过javac编译JAVA

使用类路径通过javac编译JAVA,java,javac,Java,Javac,我有以下文件夹结构: 我的工作区是/java,“项目”是这样的: - de - vfh - gp1 - bib - Console.class - Console.java - app - MyFile.java - MyFile.class 因此,当我这样做时: cd ~/Desktop/java javac -classpath "." de/vfh/gp1/app/MyFile.java

我有以下文件夹结构:

我的工作区是/java,“项目”是这样的:

- de
  - vfh
    - gp1
      - bib
        - Console.class
        - Console.java
      - app
        - MyFile.java
        - MyFile.class
因此,当我这样做时:

cd ~/Desktop/java
javac -classpath "." de/vfh/gp1/app/MyFile.java
cd ~/Desktop/java/de/vfg/app/
java MyFile
javac命令运行良好,但java命令失败,我得到:

java.lang.NoClassDefFoundError: de/vfh/gp1/bib/Console

您知道我的类路径应该是什么样子吗?

您应该从项目的根目录运行它,并使用类的全名(带包):

cd ~/Desktop/java/
java de.vfg.app.MyFile

顺便说一句-我没有看到您编译
控制台
,这显然是需要的

包的安排是什么?您需要编译并在“.”的包结构的根上运行才能工作。@user3205343请注意完全限定类名中的点而不是斜杠。@Nir您实际上不需要显式编译Console;如果MyFile引用了Console,并且Console.class不存在,javac将自动编译Console.java。