在Windows powershell上编译和运行Java文件时导入我自己的类

在Windows powershell上编译和运行Java文件时导入我自己的类,java,powershell,noclassdeffounderror,Java,Powershell,Noclassdeffounderror,我正在从事一个Java项目,其中有一个目录project,它有两个子目录(GUI和Logic) 相关类别: java(GUIpackage) java(logicpackage) 主类位于GUI包中,它导入“Logic”包中的文件 在尝试下面的命令并运行该文件时,我遇到了一个“NoClassDefFoundError” javac -sourcepath [path to Project] [file containing the import] 如果我正确理解你的目录结构是 .\sou

我正在从事一个Java项目,其中有一个目录
project
,它有两个子目录(
GUI
Logic

相关类别:
  • java(
    GUI
    package)
  • java(
    logic
    package)
主类位于
GUI
包中,它导入“Logic”包中的文件

在尝试下面的命令并运行该文件时,我遇到了一个“NoClassDefFoundError”

javac -sourcepath [path to Project] [file containing the import] 

如果我正确理解你的目录结构是

.\source
.\source\GUI
.\source\GUI\frame.java
.\source\Logic
.\source\Logic\logic.java
那么这将不起作用,因为direcotry名称应该像包名称一样命名。根据需要更改结构和类名

.\source\gui
.\source\gui\Frame.java
.\source\logic
.\source\logic\Logic.java
假设文件中的导入语句和类名已正确修改,则可以使用

javac -sourcepath source source\gui\Frame.java

我终于可以编译了。所有目录和包名都是,对,我需要做的是从我的根目录使用以下命令:

javac src/gui/*.java    
然后,要运行:

 java -cp ./src gui.Gui

谢谢那些试图帮忙的人

这些文件属于哪些Java包?我编辑了我的帖子。有两个文件,一个在gui包中,另一个在逻辑包中。制作逻辑包的jar。在gui包中运行类时,将该类添加到类PathKalaiarasan Manimaran中,我该怎么做呢?.java中的包名就是目录名的确切名称。我试着像你说的那样使用sourcepath,但是当我试着运行.class时,我仍然得到NoClassDefFoundError。我可以注意到问题并不完全在于导入,因为我对它进行了注释,我仍然得到了问题。当我指定sourcepath时会发生错误。如果我评论导入并像“javacgui.java”那样编译它,它可以工作,但是我不能这样做。