今儿个学习Java时看到了关于这篇博客的解释。
我来梳理下。
⭐如果一个类有包名,那么就不能在任意位置存放他。否则JVM将无法加载这样的类。这就是会出现错误提示的原因。(我的主类是写在了com.book.chapter1包下的。而我存放在了桌面。)
⭐在运行有包名的源文件时,应该进入到包名对应的路径的父目录,进行编译。或者像下图那样去掉包名。
Question:
如下图所示。
Solution:
- 请检查是否正确地输入了主类名。确定书写正确,执行如下操作。
- 这是方法①:如果主类的包名是com.book.chapter1,那么主类的字节码必须存放在某个…\com\book\chapter1的路径中。那么必须到com\book\chapter1的父目录(也就是包名对应的路径的父目录)中去运行主类。
(举个栗子):假设其父目录是F:\JavaFiles。那么其命令格式为:“F:\JavaFiles>java com.book.chapter1.主类名”。当然了,刚打开dos窗口可能目录是C盘。需要输入–>F:–>回车,切换到F盘。之后cd JavaFiles。(就我的路径而言)。记得使用“F:\JavaFiles>javac com\book\chapter1\源文件名”
这是方法②:去掉包名如下图所示。