首页 > 解决方案 > 找不到或加载主类 sec java

问题描述

文件名 first.java

package p1;

public class first
{
int a;
    public void display()
{
    System.out.println(a);
}

}

第二个文件 sec.java

package p2;

import p1.first;

class sec
{   
public static void main(String args[])
    {   
first obj=new first();  
obj.display();  
}

}

编译后尝试运行时出现此错误

版权所有 (C) 微软公司。版权所有。

PS C:\Users\shaik\Documents\Java> javac -d C:\Users\shaik\Documents\Java first.java
PS C:\Users\shaik\Documents\Java> javac -d C:\Users\shaik\Documents\Java sec.java
PS C:\Users\shaik\Documents\Java> java -classpath C:\Users\shaik\Documents\Java sec

Error: Could not find or load main class sec

标签: javapackage

解决方案


文件结构必须匹配包结构。您需要一些我们称之为“sourcebase”的目录,其中包含一个名为 的目录p1,并且在该目录中需要一个名为first.java.

然后要在编译后运行此代码,您需要一个我们称之为“classbase”的目录,其中包含一个名为 的目录p1,其中包含一个名为first.class. 你的二级课程也是如此。一旦你拥有了所有这些,你可以运行:

java -classpath classbase p2.sec

另请注意,您的班级名称是p2.sec. 不是sec。再多的classpath finagling 甚至都不会java sec运行你的应用程序。在源代码中,如果您在同一个包中(so, p2),或者您import p2.sec;在顶部有一个语句,您只需键入secto 引用,p2.sec但在其他任何地方,包括作为java应用程序的参数,它都被称为p2.sec.


推荐阅读