`
logo_go
  • 浏览: 15001 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类

小议Java程序不能运行的几种原因

阅读更多
    当我们或许是煞费苦心所敲的代码无法运行时,可能我们更多想到的不是自己所敲的代码存在错误,而是系统或者某些外在的客观的原因。多次的运行失败之后,渐渐的意识到很多错误并不是系统的外在的原因,而是自己丢三拉四的缘故,下面就结合自己所敲的寥寥的代码总结一下Java程序不能运行的几种原因。
一. 系统存在问题(运行环境或配置问题):
    很正常,当一个程序无法运行时,第一时间想到的是最大的一个问题:环境抑或系统出现了这样或那样的问题,人之常情。对这种问题,一般情况下很容易找到解决方案:找到曾经敲过的并且可以正常运行的代码再次运行一次,如果正常运行,则问题已经带到解决;如果该程序也无法正常运行,也不要果断的认为是系统问题,这时要多次运行曾经已经正常运行过的程序,如果都无法运行,则问题显而易见;如果只有一部分可以运行,则问题就复杂了很多(这种情况估计是科学所无法解释的),那接下来要做的就是逐一的排查系统问题了;反之,若这些都能运行,那么就不要再将那不如灯泡大的眼球聚焦于系统问题了。
    当然也有那么一种例外,就是第一次所敲的代码无法运行,那解决方案就是拷贝一份别人所敲的并且已经正常运行的代码,粘贴之后检验是否可以运行,如果是,那也就别再纠缠系统了;反之易得。
二. 语法错误:
在Eclipse环境下编写的Java程序如果出现语法错误,很多稍微稍微了解这种软件的人都可以清楚地排查这种错误,下面简单示例:



我们可以看到在上图中左侧出现了红色的x,在staic下面有红色波浪线。这时系统已经将编译过程中的语法错误自己找出,所以留给我们的就是检查staic本身,观察是否出现了拼写或没有定义等错误。如上例,检查后发现是误将static拼成staic,改正后如下图示:
三.缺少主函数:
    这种错误相对来说就比较的隐蔽了,至少在排查掉以上所列的两种错误后,我们就开始郁闷了!环境良好,没有语法错误••••••那还会是什么错误的捏?作为一个羽翼尚未出现的小小鸟,我是认为这种错误很是难以想到。其实呢,对于很多无论是白色的还是灰色的羽翼都很长的大鸟来说,这就是菜鸟级的错误:一个程序没了主函数怎么的可以运行捏?然后嘀咕一句:“弱智”,不屑的离开了。很郁闷的扔了俩白眼球后,心里很是不忿的想:谁不都是从菜鸟蜕变出来的啊!cao••••••
    其实吧!这还真是一个不可饶恕的错误,你想啊!如果一个正常人想走路,没有手行,没有腿也行,但没了脑袋还行吗?主函数都没,那还搞鬼啊!但我还就是屡次的出现这种错误,想起了湖南人引以为傲的曾国藩的一个典故:屡战屡败与屡败屡战。没了曾爷爷的气魄,但有曾爷爷的教诲,所以还好啦~~~记住不要再忘了主函数啦!
下面结合很多很多很多••••••秒以前所写的一个程序说明一下没写主函数的恶果:
package Learn0212;
/**
 * 简单学生类定义
 * @author Administrator
 */
public class Student {

	//学生属性定义
	
	//学生名字属性
	private String name;
	//学生学号属性
	private int scro=0;
	
	/**
	 * 设置学生姓名的值
	 * @param n:要设置为的名字
	 */
	public void setName(String n){
		name=n;
	}
	/**学生学习的方法*/
	public void study(){
		scro++;
		System.out.println(name+"学习中!");
	}
	/**学生玩的方法*/
	public void play(){
		scro--;
		System.out.println(name+"正在游戏中");
	
    }
	
}

看了上面的代码,记得第一次有过迷茫,开始Run As后,弹出这么一个窗口:



看了几遍,还是没搞懂,最后还是不了了之~~~呜呼哉!
上述代码添加主函数程序图及运行图如下图示1和2:
public static void main(String[] args){
	//创建一个学生对象
	Student st1=new Student();
	//调用这个对象的方法
	st1.setName("比尔盖茨");
	st1.study();
}
	

图1



图2
四. 编译错误(非语法错误):
    这类错误其实在以上几种错误中是最不易被发觉的(个人感觉哦)。这类错误很大程度上是由于不细心或者没有整体概念所致,我个人在编写时,目前出现最多的是后一种错误即没有整体概念。
    稍微的跑一下题,整体观其实很重要,它是事物形成后的一个体现,思想上的和物质上的。 一个只想着杀几个敌人的士兵或许只会在沙场的滚滚中淹没,至于位高权重,则完全的是无稽之谈了。
据自己在写代码时碰到对策一些个问题,简述一下可能的一些错误:缺少一些枝干如写主函数时缺了String args[];把public 型写作private型等等。示例如下:



    当运行时,意外的发现运行不了,在排查了以上三种错误后,还是运行不了,无奈之下只好逐一的与示例代码核对,竟•••竟•••竟发现少了些东西,补充后图片如下:
public class LoadCard extends JFrame{
	
	public static void main(String args[]){
		LoadCard loa=new LoadCard();
		loa.Creat();
	}
	//创建窗体
	public void Creat(){

说小不小,说大不大的错误竟如此般的憋屈,煞费苦心啊!



    当然,不能运行的错误还有那么多那么多的情况,譬如省去接口实现implements等,这里只是根据个人在日常编译时遇到的一些比较显著地错误加以述说。当然在日后遇到不能运行的时候,还会加以总结并汲取自己某些不足。
    那谁谁谁是荀子吧,这样说来着:“君子性非异也,善假于物也!”,但愿我以后也能善假于物吧!其实这是必然的,大鸟啊,大鸟!

  • 大小: 4.4 KB
  • 大小: 4.5 KB
  • 大小: 8.2 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics