当前位置: 技术问答>java相关
为什么我的java程序运行不了那
来源: 互联网 发布时间:2015-01-18
本文导语: 源程序如下,用javac 编译成功,可是用java simplegui.class 时提示 Exception in thread "main" java.lang.NoClass DefFoundError:simplegui 那?请大家指点! import javax.swing.*; import java.awt.event.*; import java.awt.*; public class simplegui { pu...
源程序如下,用javac 编译成功,可是用java simplegui.class 时提示
Exception in thread "main" java.lang.NoClass
DefFoundError:simplegui
那?请大家指点!
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class simplegui
{
public simplegui()
{
JFrame frame=new JFrame("simple gui container");
JLabel label=new JLabel("simple gui contain");
label.setHorizontalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label);
frame.getContentPane().setBackground(Color.red);
frame.setSize(300,200);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter()
{
public void windowCloseing(WindowEvent evt)
{
System.exit(0);
}
});
}
public static void main(String[] argv)
{
simplegui simple=new simplegui();
}
}
Exception in thread "main" java.lang.NoClass
DefFoundError:simplegui
那?请大家指点!
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class simplegui
{
public simplegui()
{
JFrame frame=new JFrame("simple gui container");
JLabel label=new JLabel("simple gui contain");
label.setHorizontalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label);
frame.getContentPane().setBackground(Color.red);
frame.setSize(300,200);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter()
{
public void windowCloseing(WindowEvent evt)
{
System.exit(0);
}
});
}
public static void main(String[] argv)
{
simplegui simple=new simplegui();
}
}
|
Classpath=.;%Classpath%;...
关键是自己Java运行环境在进行学习之前,要整理好。
一个好的习惯,比如: d:javaworksrc 存放源程序
d:javaworkbak 存放备份程序
d:javaworkdoc 存放javadoc文档
d:javaworkclasses 存放Java类码
此时,可以将d:javaworkclasses加入Classpath
编译时写一个批处理文件加上 -d d:javaworkclasses 将Java类码生成在该文件夹下。
再解释执行
关键是自己Java运行环境在进行学习之前,要整理好。
一个好的习惯,比如: d:javaworksrc 存放源程序
d:javaworkbak 存放备份程序
d:javaworkdoc 存放javadoc文档
d:javaworkclasses 存放Java类码
此时,可以将d:javaworkclasses加入Classpath
编译时写一个批处理文件加上 -d d:javaworkclasses 将Java类码生成在该文件夹下。
再解释执行
|
改autoexec.bat加入
set PATH=%PATH%;c:jdk1.3.1bin;c:jdk1.3.1
set classpath=%ClASSPATH%;.;c:jdk1.3.1;c:jdk1.3.1lib;C:jdk1.3.1libtools.jar;C:jdk1.3.1libdt.jar
:如果你的jdk安装在C:jdk1.3.1
set PATH=%PATH%;c:jdk1.3.1bin;c:jdk1.3.1
set classpath=%ClASSPATH%;.;c:jdk1.3.1;c:jdk1.3.1lib;C:jdk1.3.1libtools.jar;C:jdk1.3.1libdt.jar
:如果你的jdk安装在C:jdk1.3.1
|
给你我的做参考:
set PATH=E:PROGRAMINPRISEAPPSERVERBIN;C:WINDOWS;C:WINDOWSCOMMAND;C:PROGRAMFILESMTS;E:PROGRAMJ2EEJDK1.3BIN;
set classpath=.;E:Programj2eejdk1.3libdt.jar;E:Programj2eejdk1.3libtools.jar;
set PATH=E:PROGRAMINPRISEAPPSERVERBIN;C:WINDOWS;C:WINDOWSCOMMAND;C:PROGRAMFILESMTS;E:PROGRAMJ2EEJDK1.3BIN;
set classpath=.;E:Programj2eejdk1.3libdt.jar;E:Programj2eejdk1.3libtools.jar;
|
程序绝对没问题,我试过了。
若在win2000下可在我的电脑--属性--高级--环境变量下设置:
在PATH中添加c:jdk1.3bin,假设c:jdk1.3为安装路径(此路径一定要添加,否则无法运行命令javac,新建变量名JAVA_HOME,值为c:jdk1.3
若在win98下则要在Autoexec.bat文件中添加:
set PATH=c:jdk1.3bin
set JAVA_HOME=c:jdk1.3
在win2000下修改后不用重启,但要重新开一次命令行窗口
在win98下修改后要重启
注意:java对大小写很敏感,一定要小心。
若问题还不能解决,把jdk1.3卸了,重装一遍,再按以上步骤修改变量,应该没问题了。
若在win2000下可在我的电脑--属性--高级--环境变量下设置:
在PATH中添加c:jdk1.3bin,假设c:jdk1.3为安装路径(此路径一定要添加,否则无法运行命令javac,新建变量名JAVA_HOME,值为c:jdk1.3
若在win98下则要在Autoexec.bat文件中添加:
set PATH=c:jdk1.3bin
set JAVA_HOME=c:jdk1.3
在win2000下修改后不用重启,但要重新开一次命令行窗口
在win98下修改后要重启
注意:java对大小写很敏感,一定要小心。
若问题还不能解决,把jdk1.3卸了,重装一遍,再按以上步骤修改变量,应该没问题了。
|
在class所在的目录下面输入命令行
java -cp . simplegui
一切OK!
至于以后不想这么麻烦的话,你要在环境变量里面设置classpath=.;%classpath%
如果是98就重新启动机器,或者在命令行里面运行一下autoexec;
要是2k,就把当前命令行窗口关闭,重新打开。
然后输入java simplegui,回车!就可以了!
java -cp . simplegui
一切OK!
至于以后不想这么麻烦的话,你要在环境变量里面设置classpath=.;%classpath%
如果是98就重新启动机器,或者在命令行里面运行一下autoexec;
要是2k,就把当前命令行窗口关闭,重新打开。
然后输入java simplegui,回车!就可以了!
|
你的程序是不是敲错了。public static void main(String[] args)
你是不是从c那边跑过来的
执行后显示个红色的窗口
你是不是从c那边跑过来的
执行后显示个红色的窗口
|
不要这样写:java simplegui.class
应该这样写:java simplegui
应该这样写:java simplegui