我在D:\ProjectGsc\中有一些类的包。程序包的根文件夹称为gsc,其中包含三个子目录,即utilcoremodules。在每个文件中都有一些文件,在core中有一个名为gsc.class的文件。除了这些文件夹外,在res文件夹中还有一个文件夹gsc,其中包含我的包类中的JFrame和JDialogs使用的某些图像。我设法使用-classpath \projectgsc编译所有内容,并且在调试代码后,所有内容都可以顺利编译。但是我根本无法运行它。我在java gsc -classpath \projectgsc内时尝试尝试D:\ProjetctGsc\gsc\core\,但是它在线程main中给了我异常(肯定是main的语法正确)java.lang.NoClassDefFoundError: gsc (wrong name: gsc/core/gsc)。是因为我的班级名称在软件包gsc中位于gsc.core吗?

提前致谢! (顺便说一句,SO不允许我将问题命名为“运行时的类路径问题”,所以这是我能想到的最好的标题,请随时对其进行编辑)

最佳答案

是的,要在包gsc中运行名为gsc.core的类(违反Java命名约定,顺便说一句)(ick-包含类名的包名称;令人困惑!),您需要编写

java -classpath d:\ProjectGsc gsc.core.gsc


但是您必须对其进行编译,以便具有以下目录结构:

d:\ProjectGsc
             \gsc
                 \core
                      \gsc.class


如果对javac使用-d选项,则会自动获得此信息:

javac -d d:\ProjectGsc *.java


(当然要进行相应的调整。)

您可能会发现,如果您不熟悉Java,那么使用可以为您处理所有这些问题的IDE可以使您的生活更轻松。

关于java - 编译的程序包无法运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12766966/

10-11 18:16