由于以前总是用IDE开发环境来开发,现在发现用notepad编写的程序在dos窗口下竟然不能运行,编译好以后运行的话总是提示出现 Exception in thread "main" java.lang.NoSuchMethodError: main
请问这是什么原因造成的,是不是环境变量没有设置好?

解决方案 »

  1.   

    是因为你的环境变量没有设好,path,和classpath都要设,有的机子设完了还要重起.
      

  2.   

    我就是一个最简单的测试程序;class Test{
      public static void main(String[] args)
    {
        System.out.pritnln("Test");
    }javac Test.java 没有错误java Test 就会出现那个错误了
      

  3.   

    另外我的环境变量是这样设置的 path  ;C:\j2sdk1.4.0\binclasspath  C:\j2sdk1.4.0\lib请问是这样的吗
      

  4.   

    楼上的请问是什么意思??
    我的环境变量以前没有classpath,是我新建的,也需要.;吗
      

  5.   

    这个应该不是环境设置问题,而是你的类的路径问题
    你的package 呢,用java命令运行的时候,是要跟完整的包名的
    假如你的类
    package cn.com
    public class Test{
      public static void main(String[] args)
    {
        System.out.pritnln("Test");
    }运行的时候就要用
    java cn.com.Test
      

  6.   

    这是类路径的设置问题,就是classpath。你需要自己创建。如果你的classpath是C:\j2sdk1.4.0\lib,那你编译的Test类需要放到lib这个目录下。其实你不应该设置classpath到C:\j2sdk1.4.0\lib这里,你应该建一个文件夹,然后设置成这个文件夹,然后把你练习的类放到这个文件夹中,然后编译。
      

  7.   

    classpath  .;C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\dt.jar;
      

  8.   

    如果代码里面没有package语句,
      

  9.   

    classpath .;(那个点代表当前目录)
      

  10.   

    classpath这样写:
    classpath:".;otherjar.jar"
    那个.一定不能少,否则找不到,
    另外classpath里放的一般是jar文件,不放目录,除非那个目录是展开的目录结构,
    下面按照包名放好了.class文件
    不过你也可以编译时用
    javac -cp . Test.java
    运行时用
    java -cp . Test
    不过麻烦,一般在classpath里设..