A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无奈的年华ˊ 高级黑马   /  2014-2-8 20:34  /  1655 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 无奈的年华ˊ 于 2014-2-13 23:07 编辑

程序:↓
class Test
{
         public  static void main(String[] args)
         {
                getStr();
         }
         public static void getStr()
         {
        //定义一个字符串
          String name = "itheima";
                 System.out.print(name);
         }
}

报错:↓
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: Tes
t)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

为什么编译的时候没问题,运行就报错呢?

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

10 个回复

倒序浏览
  1. class Test
  2. {
  3.          public  static void main(String[] args)
  4.          {
  5.                 Test.getStr();
  6.          }
  7.          public static void getStr()
  8.          {
  9.         //定义一个字符串
  10.           String name = "itheima";
  11.                  System.out.print(name);
  12.          }
  13. }
复制代码


调用静态的方法,用类名加点的方式调用。
否则在main函数里面不知道调用的是哪个类的静态方法~!!!!
希望对你有用

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
这是我运行的程序,没有错误啊

QQ截图20140208204800.png (67.44 KB, 下载次数: 28)

QQ截图20140208204800.png

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
我把代码也运行了一下,也没有错误,java.lang.NoClassDefFoundError这个异常前几天我也见了,当时是因为我的环境变量配置错了,修改好环境变量后就行了,DOS窗口得重启才行

程序.jpg (182.25 KB, 下载次数: 36)

程序截图

程序截图
回复 使用道具 举报
张志明 发表于 2014-2-8 20:43
调用静态的方法,用类名加点的方式调用。
否则在main函数里面不知道调用的是哪个类的静态方法~!!!!
...

哥们、谢谢回答。你这样也可以运行,然后我重新开了个控制台再运行了一次我那个也可以了!搞不明白刚刚为什么报那种错!
回复 使用道具 举报
廉伟杰 发表于 2014-2-8 20:48
这是我运行的程序,没有错误啊

哥们、谢谢回答。我重新开了个控制台再运行了一次我那个也可以了!搞不明白刚刚为什么报那种错!
回复 使用道具 举报
dongdong5982 发表于 2014-2-8 20:58
我把代码也运行了一下,也没有错误,java.lang.NoClassDefFoundError这个异常前几天我也见了,当时是因为我 ...

我什么都没动,就重新开了个窗口运行就不报错了,你程序能直接在EditPlus里运行?为什么下面有个提示正常终止。
回复 使用道具 举报
无奈的年华ˊ 发表于 2014-2-8 21:07
我什么都没动,就重新开了个窗口运行就不报错了,你程序能直接在EditPlus里运行?为什么下面有个提示正常 ...

这个正常终止不就是运行结束了,然后终止了,都有的啊
回复 使用道具 举报
无奈的年华ˊ 发表于 2014-2-8 21:07
我什么都没动,就重新开了个窗口运行就不报错了,你程序能直接在EditPlus里运行?为什么下面有个提示正常 ...

EditPlus里可以直接编写、运行Java程序,可以练习手敲代码,也没有每次都用DOS窗口的麻烦。我是觉得DOS会用就行了,如果一直用它编译运行的话,就有些麻烦了。
回复 使用道具 举报
无奈的年华ˊ 发表于 2014-2-8 21:07
我什么都没动,就重新开了个窗口运行就不报错了,你程序能直接在EditPlus里运行?为什么下面有个提示正常 ...

这是我在网上找到的EditPlus配置Java运行的方法,比较详细,希望对你能有所帮助:


  在配置EditPlus之前是先将JAVA的运行环境安装且调试好,
然后进入EditPlus,从菜单“工具(Tools)”;“配置用户工具...”进入用户工具设置,选择“组和工具条目”中的“Group 1”,点击面板右边的“组名称...”按钮,将文本Group1”修改成“Java编译程序”,点击“添加工具”按钮,选择应用程序,然后就是修改属性:
1. 添加编译功能
“菜单文本”里的内容修改为“Javac”;
“命令”选择安装JDK后的Bin目录中的编译程序javac.exe,我的JDK 安装路径为“C:\rogram

FilesJDKj2sdk1.4.2_08”,那么此路径为“D:\Program Files\Java\jdk1.6.0_10\bin\javac.exe”;
“参数”选择“文件名”,即显示为“$(FileName)”;
“初始目录”选择“文件目录”,显示为“$(FileDir)”;选择“捕获输出”复选框
点击确定。
2. 添加执行功能
点击“添加工具”按钮,选择应用程序,然后就是修改属性:
“菜单文本”里的内容修改为“Java”;
“命令”选择安装JDK后的BIN目录中的编译程序java.exe,路径为“D:\Program Files\Java\jdk1.6.0_10\bin\java.exe”;
“参数”选择“不带扩展名的文件名”,即显示为“$(FileNameNoExt)”;
“初始目录”选择“文件目录”,显示为“$(FileDir)”;选择“捕获输出”复选框,点击确定。
配置完成。
这样当你编完一个程序后,只需打开工具菜单,点击javac就可创建,而不用在doc环境下敲入命令了,当然运行也是在工具中点击java,那么运行结果就出来了。很方便的!

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
dongdong5982 发表于 2014-2-8 21:17
这是我在网上找到的EditPlus配置Java运行的方法,比较详细,希望对你能有所帮助:

多谢,搞定了,这下省事多了!{:2_36:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马