在 Windows powershell 上编译和运行 Java 文件时导入我自己的类
Importing my own classes when compiling and running Java file on Windows powershell
我正在开发一个 Java 项目,其中有一个目录 Project
,它有两个子目录(GUI
和 Logic
)
相关classes:
- frame.java(
GUI
套餐)
- logic.java(
Logic
套餐)
主要的 class 在 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
那么这将不起作用,因为目录名称应该像包名称一样命名。将结构和 class 名称更改为
.\source\gui
.\source\gui\Frame.java
.\source\logic
.\source\logic\Logic.java
假设文件中的导入语句和 class 名称已正确修改,您可以使用
编译它
javac -sourcepath source source\gui\Frame.java
终于可以编译了。所有目录和包名称都是正确的,我需要做的是从我的根目录使用以下命令:
javac src/gui/*.java
然后,运行:
java -cp ./src gui.Gui
感谢那些试图提供帮助的人!
我正在开发一个 Java 项目,其中有一个目录 Project
,它有两个子目录(GUI
和 Logic
)
相关classes:
- frame.java(
GUI
套餐) - logic.java(
Logic
套餐)
主要的 class 在 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
那么这将不起作用,因为目录名称应该像包名称一样命名。将结构和 class 名称更改为
.\source\gui
.\source\gui\Frame.java
.\source\logic
.\source\logic\Logic.java
假设文件中的导入语句和 class 名称已正确修改,您可以使用
编译它javac -sourcepath source source\gui\Frame.java
终于可以编译了。所有目录和包名称都是正确的,我需要做的是从我的根目录使用以下命令:
javac src/gui/*.java
然后,运行:
java -cp ./src gui.Gui
感谢那些试图提供帮助的人!