java编译不出运行结果_关于java编译通过,运行时出错或找不到主类问题解决

刚接触java,倒腾了半天设施好环境变量,控制台输入java、javac、java -version后,输出正确。终于可以编程序了,很激动,于是直接从老师发的现成的代码包里面考了一份(其实自己敲一个的话,就不用这么费劲,话又说回来,如果自己敲一份的话,自己也不会发现这个问题)。

执行了cd.. 、cd chapter1转到所在文件夹

输入 :javac Hello.java   成功编译

紧接着输入:java Hello 抛出错误,无法加载主类,顿时心又凉了半截

在网上搜集本都是说环境变量classpath设置有误,可是我检查了好多遍,查了很多关于环境变量设置的具体操作,发现自己并没有写错。最后找到错误之处是我碰巧撞上了,哈哈哈,算是运气吧。在此分享一下。

原来的代码:

package chapter1.例子1;

public class Hello{

public static void main (String args[]){

System.out.println("这是一个简单的Java应用程序");

Student stu=new Student();

stu.speak("We are students");

}

}

class Student{

public void speak(String s){

System.out.println(s);

}

}

0818b9ca8b590ca3270a3433284dd417.png

修改后:

public class Hello{

public static void main (String args[]){

System.out.println("这是一个简单的Java应用程序");

Student stu=new Student();

stu.speak("We are students");

}

}

class Student{

public void speak(String s){

System.out.println(s);

}

}

0818b9ca8b590ca3270a3433284dd417.png

可以发现只是删除了这句话:

package chapter1.例子1;

为什么会这样?

首先,包名指的什么,其实简单理解包名就是一个又一个的文件夹,这些文件夹是嵌套关系,父文件夹和子文件夹之间用'.'(英文句号)隔开。

如果一个类有包名,那么就不能在任意位置存放它,否则虚拟机将无法加载这样的类。

如果有一个这样的包名:package  chapter1.例子1

那么存储文件的目录结构中必须含有如下结构:...\chapter1\例子1

按照这个原则修改文件夹

原存储路径:C:\chapter1\Hello.java

修改后:C:\chapter1\例子1\Hello.java

那含有包名的该怎么编译运行?

首先是编译:在 Hello.java所在的文件夹下编译javac  Hello.java

然后运行之前,首先要转到包所在文件夹,对于这个程序来说就是C盘

然后 输入:java  包名.主类名(java  chapter1.例子1.Hello)

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在运行Java程序时,如果出现"不到或无法加载主类"的错误提示,通常是由于以下几个原因导致的: 1. 编译错误:首先,请确保你的Java程序已经成功编译。在命令行中使用javac命令编译Java源文件,例如:javac HelloWorld.java。如果编译出现错误,请检查代码中是否存在语法错误或其他编译错误。 2. 类路径问题Java程序在运行时需要指定类路径,以告诉JVM去哪里查类文件。如果你的程序依赖于其他类或库文件,需要将这些文件所在的路径添加到类路径中。在命令行中使用java命令运行Java程序时,可以使用-cp或-classpath选项指定类路径,例如:java -cp . HelloWorld。其中"."表示当前目录,你可以根据实际情况修改为你的类文件所在的路径。 3. 包名问题:如果你的Java程序使用了包名,那么在运行时需要注意包名的正确性。请确保你的类文件所在的目录结构与包名相匹配,并且在运行时使用正确的包名来指定主类。例如:java com.example.HelloWorld。 4. 主类名称错误:请检查你指定的主类名称是否正确。主类Java程序的入口点,它必须包含一个public static void main(String[] args)方法。请确保你指定的主类名称与实际的类名完全一致。 如果你仍然无法解决问题,请提供更多的详细信息,例如你的代码和具体的错误提示,以便我能够更准确地帮助你解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值