抛开ide,踏踏实实地用text写Java,感觉好生硬.一些曾经没注意过的"小"问题,原来蕴含着大学问.
在console中运行一个从属于一个package的java程序,你晓得吗?
对于接触过Java一段时间的人来说,咋看肯定感觉很容易,我开始也是这么想的.PaLa...PaLa....1下就打好了源文件,然后cmd开终端,Javac顺利通过,但到Java运行时问题出来了,main函数异常?马上回去检查哪错了...晕!这绝对正确!但为什么跑不了呢?怪哉...
把package去掉,正常运行!证明是package的问题!
自己空想了1通...没遇到过这,认输了...Google吧!找到2篇合适的博文,看完后,照着教程做,总算解决了,but destroy me!
真的是"小"问题大学问啊!
首先,跑有package的Java program分2中情况:
- 要跑的程序从属于一个包.
- 要跑的程序不从属于一个包,但它引用的另一个类从属一个包.(这种是不会有问题的,据说是Java有个make功能,至于这个make是什么,我看的资料上没详叙,我也没心情去找.)
- complete:在console中编译时必须在它的包的上一级目录中进行,javac后的源文件必须用绝对地址(*1).
- run:在console中跑的时候也必须是它的包的上一级目录中进行,Java后的字节文件(*2)要用这个格式:"包名.字节码文件名"
我参考的2篇博文是:1; 2;
****************************************************************
- 从盘符开始,到文件名.
- 编译后产生的后缀是class的文件.