could not find the main class,program will exit

AsanZhang 2013-04-15 09:21:24
在写如下代码后运行时,出现了如图中的警告和控制台上的提示,求解!!!

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

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

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

...全文
229 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_lan 2013-04-16
  • 打赏
  • 举报
回复
引用 5 楼 Elephant05 的回复:
引用 1 楼 xian_lan 的回复: 看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到 推测是实例化类的时候出了问题 可是在命令行中可以完美运行,如图: 很是郁闷!!!
楼主请验证下ConfigReader.java文件是否放在\src\org\programming\student\中, 再看下工程里面的bin\org\programming\student\ 文件夹,里面有没有ConfigReader.class这个文件,没有的话执行“Project->Clean->选择你的工程->Ok”,会生成这个类,再执行试试 如果还不行,请把图片里的代码贴到这里,我在我本机试下看可不可以
AsanZhang 2013-04-16
  • 打赏
  • 举报
回复
引用 4 楼 feier00 的回复:
LZ把main方法中的第一行,getinstance()改成ConfigReader.getinstance()。
试了一下,行不通,还是老样子。其实,在同一个类中,静态的主方法调用其他静态的方法,是可以不创建该类的实例,并且也可以不用类名调用的。
AsanZhang 2013-04-16
  • 打赏
  • 举报
回复
引用 1 楼 xian_lan 的回复:
看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到

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


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

很是郁闷!!!
跳蚤图 2013-04-16
  • 打赏
  • 举报
回复
LZ把main方法中的第一行,getinstance()改成ConfigReader.getinstance()。
AsanZhang 2013-04-16
  • 打赏
  • 举报
回复
引用 2 楼 MrSeve 的回复:
楼主请看类中第一行代码,死循环了吧?


在命令行中可以完美运行改程序的,如图所示:
MrSeve 2013-04-16
  • 打赏
  • 举报
回复
楼主请看类中第一行代码,死循环了吧?
xian_lan 2013-04-16
  • 打赏
  • 举报
回复
看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到 推测是实例化类的时候出了问题
AsanZhang 2013-04-16
  • 打赏
  • 举报
回复
引用 9 楼 xian_lan 的回复:
还是源代码有问题,我在命令行窗口和eclipse里都试过。 对于5楼的截图,这个图里输出了两个参数,但代码里只输出了一个参数,可以确定你那幅图执行的是另一个java文件 代码的问题在于ClassLoader.getResourceAsStream的用法,配置文件要用绝对路径 可以参考:http://www.blogjava.net/anchor110/artic……
才看到,已经解决了,答案还是谢谢您。getResourceAsStream(String src)方法获取的资源应该放在类路径下,而我放在了当前路径下了。
xian_lan 2013-04-16
  • 打赏
  • 举报
回复
还是源代码有问题,我在命令行窗口和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);
	}
}
AsanZhang 2013-04-16
  • 打赏
  • 举报
回复
引用 7 楼 xian_lan 的回复:
引用 5 楼 Elephant05 的回复:引用 1 楼 xian_lan 的回复: 看控制台的信息,代码的第11行和第20行出了问题,先看看这两行的内容是什么,图里面看不到 推测是实例化类的时候出了问题 可是在命令行中可以完美运行,如图: 很是郁闷!!! 楼主请验证下ConfigReader.java文件是否放在\src\org\program……
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("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);
	}
}
这是源码,麻烦您了!

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧