首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

could not find the main class,program will exit,该如何解决

2013-04-20 
could not find the main class,program will exit在写如下代码后运行时,出现了如图中的警告和控制台上的

could not find the main class,program will exit
    在写如下代码后运行时,出现了如图中的警告和控制台上的提示,求解!!!

    首先,编译器的版本和JDK的版本是一致的;

    然后,在MyEclipse中其他Project中的代码都能正常运行,唯独这个程序出现了问题;

    最后,在命令行中却可以完美运行该程序,获得想要的结果,一度让我认为真的是编译器的版本和JDK的版本真的不一致,可在设置中版本确实是一致的,见鬼!折腾一下午了,求解!!!!!!!!!!could not find the main class,program will exit,该如何解决

could not find the main class,program will exit,该如何解决could not find the main class,program will exit,该如何解决could not find the main class,program will exit,该如何解决
[解决办法]
看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到

推测是实例化类的时候出了问题
[解决办法]
LZ把main方法中的第一行,getinstance()改成ConfigReader.getinstance()。
[解决办法]

引用:
引用:
看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到

推测是实例化类的时候出了问题

可是在命令行中可以完美运行,如图:

很是郁闷!!!


楼主请验证下ConfigReader.java文件是否放在\src\org\programming\student\中,
再看下工程里面的bin\org\programming\student\ 文件夹,里面有没有ConfigReader.class这个文件,没有的话执行“Project->Clean->选择你的工程->Ok”,会生成这个类,再执行试试

如果还不行,请把图片里的代码贴到这里,我在我本机试下看可不可以
[解决办法]
还是源代码有问题,我在命令行窗口和eclipse里都试过。
对于5楼的截图,这个图里输出了两个参数,但代码里只输出了一个参数,可以确定你那幅图执行的是另一个java文件

代码的问题在于ClassLoader.getResourceAsStream的用法,配置文件要用绝对路径
可以参考:http://www.blogjava.net/anchor110/articles/340079.html

还要记得将students.properties和ConfigReader.java都放置在
....src\org\programming\student这个路径下面

以下是修改后的代码,可以执行

package org.programming.student;

import java.util.*;
import java.io.*;
/**
  *该类用来读取配置文件中的属性,并在设计该类时使用了单例模式。
  *  
  */
public class ConfigReader
{
  private static ConfigReader instance = new ConfigReader();
  private Properties pros = new Properties();

  private ConfigReader()
  {
    //该处使属性集和指定文件进行关联
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/programming/student/students.properties");
/*InputStream in = ConfigReader.class.getResourceAsStream("students.properties");  //也可以使用这种方式  */
    try{
      this.pros.load(in);
    }catch(IOException e){
      e.printStackTrace();
    }    
  }

  public static ConfigReader getInstance()
  {
    return instance;
  }

public String getPropertyValue(String key)
{
return this.pros.getProperty(key);
}

public static void main(String[] args) 
{
    String driverName = getInstance().getPropertyValue("driver-name");
    String url = getInstance().getPropertyValue("url");
    System.out.println(url);
}
}

热点排行