下面的是我按课本上的程序编写的例子 我机子上装的是JAVA1.5 import java.io.*;
import java.io.IOException;
public class Sayit{
public static void main (String[] args) throws IOException{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input =new BufferedReader(reader);
System.out.print("Enter you name:");
String name=input.readLine();
System.out.println("Hello,"+name+"!");
}
}
我编译时没出现错误
Exit code: 0
No Errors但是我紧接着运行时就出现下面的提示:
java.lang.NoClassDefFoundError: Sayit
Exception in thread "main" Exit code: 1
There were errors
哪位大虾帮我解决下 谢谢!
import java.io.IOException;
public class Sayit{
public static void main (String[] args) throws IOException{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input =new BufferedReader(reader);
System.out.print("Enter you name:");
String name=input.readLine();
System.out.println("Hello,"+name+"!");
}
}
我编译时没出现错误
Exit code: 0
No Errors但是我紧接着运行时就出现下面的提示:
java.lang.NoClassDefFoundError: Sayit
Exception in thread "main" Exit code: 1
There were errors
哪位大虾帮我解决下 谢谢!
init:
deps-jar:
Deleted 6 out of date files in 0 seconds
Compiling 1 source file to D:\projects\test\build\classes
compile:
run-single:
zhou
Enter you name:Hello,zhou!
BUILD SUCCESSFUL (total time: 46 seconds)这是在NB6.0下的结果,
这是在JDK1.6上的
---------------------
是因为没有找到Sayit.class这个文件
编译时应该确认大小写,再看看有没有生成这个类文件
Enter you name:wxl
Hello,wxl!
java.lang.NoClassDefFoundError: Sayit
Exception in thread "main" Exit code: 1
There were errors
你的程序我也可以运行,不太清楚为什么你不可以
在CLASSPATH中设置路径
或直接在命令行中用-classpath 就可以了
C:\Documents and Settings\Administrator>javac
'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。这样的字样?那就是环境变量配得不对dos环境下path变量和classpath变量都是必须的
如果还有问题就不清楚了......
运行结果:
enter your name:zh
hello,zh!
实在不行,就用最笨的办法,在命令行里进入到你CLASS类所在目录再运行JAVA试试...
不知道对不
我在dos环境下敲javac 回车 出现了JAVAC的用法格式 还有里面关于选项的一些说明
C:\Documents and Settings\Administrator>javac e:\java\jdk1.5\lib\Sayit.java之后
有Sayit.class文件生成 继续用
C:\Documents and Settings\Administrator>java e:\java\jdk1.5\lib\Sayit 出现
Exception in thread “main”java.lang.NoClassDefFoundError:e:\java\jdk1/5\lib\Sayit/class
import java.io.IOException;
public class Sayit{
public static void main (String[] args) throws IOException{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input =new BufferedReader(reader);
System.out.print("Enter you name:");
String name=input.readLine();
System.out.println("Hello,"+name+"!");
}
}
直接编译没有错误提示 是对的
Exit code: 0
No Errors
但是紧接着运行就出现这个提示
java.lang.NoClassDefFoundError: Sayit
Exception in thread "main" Exit code: 1
There were errors
他们有人说是我环境变量设置错误 但是有的程序却可以正常编译和运行
不知道对不
很可能是环境变量的问题.
不知道对不
我在dos环境下敲javac 回车 出现了JAVAC的用法格式 还有里面关于选项的一些说明
C:\Documents and Settings\Administrator>javac e:\java\jdk1.5\lib\Sayit.java之后
有Sayit.class文件生成 继续用
C:\Documents and Settings\Administrator>java e:\java\jdk1.5\lib\Sayit 出现
Exception in thread “main”java.lang.NoClassDefFoundError:e:\java\jdk1/5\lib\Sayit/claC:\Documents and Settings\Administrator>java e:\java\jdk1.5\lib\Sayit 这个不可以这样用的......你用java -classpath e:\java\jdk1.5\lib Sayit 试试应该没问题...
在这个命令行下输入java Sayit.....
试试
path在原来的前面加上了 C:\Program Files\Java\jdk1.6.0_02\bin;
再试试
这个语句也试了?
java -classpath e:\java\jdk1.5\lib Sayit
也试了
Enter you name:Exception in thread "main" java.io.IOException: 句柄无效。
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:194)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at Sayit.main(Sayit.java:8)
Exit code: 1
There were errors
我估计是不是版本的问题
你前面的那个运行命令是错的....就不能那样运行.....
public class YH
{
int i,j;
int n =10;
int mat[][] = new int [n][];
void JJ()
{
for(i =0; i<n; i++)
{
mat[i] = new int[i+1];
mat[i][0] = 1;
mat[i][i] = 1;
for(j=1; j<i; j++)
mat[i][j] = mat[i-1][j-1]+mat[i-1][j];
}
}
void SC()
{
for(i=0; i<mat.length; i++)
{
for(j=0; j<n-1; j++)
System.out.print(" ");
for(j=0; j<mat[i].length; j++)
System.out.print(" " +mat[i][j]);
System.out.println();
}
}
public static void main(String [] args)
{
YH TJ = new YH();
TJ.JJ();
TJ.SC();
}
}
编译后用 java e:\java\jdk1.5\lib YH 运行正常
进入到命令行:e:\java\jdk1.5\lib
在这个命令行下输入java Sayit.....
说java不是内部命令或外部命令...
但是在C:\Documents and Settings\Administrator>下用java YH(上面的洋灰3角程序)能运行java Sayit就运行不了
好像在CLASSPATH中是有优先级的,路径的优先级就导致了类也存在优先级的问题,不知道是从哪儿看到的,反正看过有点印象...不知道对不对...
! 在DOS 下能运行 FREEJAVA里貌似运行不了 呵呵 这个不知道又是什么原因
“.;E:\java\jdk1.5\lib\dt.jar;E:\java\jdk1.5\lib\tools.jar”
你的编译时环境没有错,打算运行时环境变量没设置好。
具体如下:
我的电脑--》属性--->高级---》环境变量
找到classpath 如果没有的话 自己增加一个classpath
然后设置为 “.;c:\java\jdk1.5\lib\dt.jar;c:\java\jdk1.5\lib\tools.jar”
(这里假设你的jdk是装在c盘的java下,如果不是找到你自己的安装路径换过来,前面这个“.”是一定要的,表示当前路径,没有它就不能在当前路径运行了,你肯定就是这个问题)
2。命令行运行jdk1.5必须配置环境变量,1.6没试过。“用JDK1.5的版本在命令行中调试一个最简单的程序,若能调试成功,烦请告诉论坛的兄弟一下.”
---------------------------------------------------------------------------------
不配置环境变量,累死你也调不成功。
进入到命令行:e:\java\jdk1.5\lib
在这个命令行下输入java Sayit.....
说java不是内部命令或外部命令...
但是在C:\Documents and Settings\Administrator>下用java YH(上面的洋灰3角程序)能运行java Sayit就运行不了
-------------------------------------
肯定是环境变量设置得不对。
你只要配置 path就行了,它是系统变量应配置为C:\Program Files\Java\jdk1.5.0\bin;
如果你把java 程序拷到c盘根目录下
必须打入命令cd c:\
然后运行javac Sayit.java
再运行java Sayit
要运行你的.class文件就要把该CLASS文件所在的路径拷贝到CLASSPATH中.这样运行java Sayit时虚拟机才能找到Sayit.class这个文件.
也就是说PATH的设置是让你的操作系统找到java.exe,javac.exe等在哪里.也就是PATH设置以后javac和java这两个指令才有效.
CLASSPATH的设置是保证java虚拟机能找到你的.class文件,这时运行java Sayit就能够成功(即因为你的PATH设置对了所以"java"有效,因为CLASSPATH设置对了所以虚拟机找到了Sayit.class)这样java Sayit就能成功.