📄 jdk_deployment.htm
字号:
<html>
<!-- #BeginTemplate "/Templates/more.dwt" -->
<head>
<!-- #BeginEditable "doctitle" -->
<title>csdn_JDK配置问题</title>
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
A:link {
COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:visited {
COLOR: #333399; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:active {
COLOR: #ff0000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:hover {
COLOR: black; TEXT-DECORATION: underline
}
BODY {
COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TH {
FONT-SIZE: 9pt
}
TD {
FONT-SIZE: 9pt
}
TD.page {
COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TD.title {
COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体
}
TD.detail {
COLOR: #9966ff; FONT-FAMILY:verdana,宋体,新宋体
}
</STYLE>
</head>
<body bgcolor="#FFFFFF" text="#000000" >
<div align="center"></div>
<table width="700" border="0" align="center">
<tr>
<table width="700" border="1" cellpadding="1" cellspacing="0" bordercolorlight="#9898ba" bordercolordark="#000000">
</table>
<table width="700" cellspacing="0" cellpadding="0" bgcolor="9898ba" border="0">
<tr valign="middle"></tr>
</table>
<div align="center"><b></div>
<br>
<table width="700" border="0">
<tr>
<td width="20"> </td>
<td colspan="2">
<div align="center">
<h3><b><!-- #BeginEditable "5" --><font face="Verdana, Arial, Helvetica, sans-serif" >JDK</font><font >配置问题</font><!-- #EndEditable --></b></h3>
</div>
</td>
<td width="20"> </td>
</tr>
<tr>
<td width="20"> </td>
<td colspan="2"><!-- #BeginEditable "6" -->看到论坛上那么多人问关于JDK配置的问题,特别是配置之后,编译java文件的时候,总是碰到这样一个问题,错误提示为:<br>
=================================================================================================
<br>
Microsoft Windows 2000 [Version 5.00.2195] <br>
(C) 版权所有 1985-1998 Microsoft Corp.
<p>C:\>javac HelloWorld.java </p>
<p>C:\>java HelloWorld <br>
Exception in thread "main" java.lang.NoClassDefFoundError:
HelloWorld </p>
<p>C:\> <br>
以上为出错信息 <br>
源程序如下: <br>
class HelloWorld { <br>
public static void main(String[] args) { <br>
// Display "Hello World!" <br>
System.out.println("Hello World!"); <br>
} <br>
} </p>
<p>编译通过 运行怎么就Exception in thread "main" java.lang.NoClassDefFoundError:
HelloWorld???????/ <br>
===================================================================================================
</p>
对于以上的问题,大家一贯的解决方法为,把HelloWorld.java文件所在目录的路径加入参数classpath中,如:set classpath=%classpath%;.;……(这里要注意其中的“.;”,一会儿我们做个试验看看到底是什么意思)。我试过了,好像不行,不知道是不是我没有配置好。至于给这个问题解答的网友有没有具体实践过,我不得而知。于是,我自己做了一次尝试。<br>
我使用Win2000+JDK1.30,在java.sun.com下载j2sdk1_3_0-win.exe,然后点击安装,安装系统默认的路径,安装到c:盘,即:c:\jdk130。安装完成需要配置环境,这涉及到三个参数:path、classpath、java_home。在我的电脑-》属性-》高级-》环境变量
中,分别添加这三个变量,他们的值分别为:<br>
<br>
<table width="80%" border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<td bgcolor="006699">
<div align="center"><font color="#FFFFFF"><b>name</b></font></div>
</td>
<td bgcolor="006699">
<div align="center"><font color="#FFFFFF"><b>value</b></font></div>
</td>
</tr>
<tr>
<td>java_home</td>
<td>c:\jdk130</td>
</tr>
<tr>
<td>classpath</td>
<td>.;C:\jdk13\lib\tools.jar;C:\jdk13\lib\dt.jar;C:\jdk13\bin;</td>
</tr>
<tr>
<td>path</td>
<td>C:\jdk13\bin;</td>
</tr>
</table>
<br>
然后确定就可以了。<font color="#FF0000"><br>
<br>
注解:classpath用于指明所有用于引用的类所在的目录,它允许用户把自己的类放在不同的目录中,但应该让JDK编译工具知道它们在那里。例如:set
classpath=.;C:\jdk13\lib\tools.jar;C:\jdk13\lib\dt.jar;C:\jdk13\bin;命令中的第一个圆点指明classpath当前的工作目录。这个圆点非常有用,当不愿意输入完整的当前目录路径时,可以用它来代替,java程序允许这么做。</font><br>
<br>
在d:新建子目录java,编写一个java文件,名字叫Hello.java,进入dos模式,进入到目录d:\java,然后敲入javac
Hello.java,编译通过。然后可以使用java Hello运行生成的class文件,没有问题,结果正常输出。若是我们在Hello.java文件中的第一句加入:package
hello; ,然后编译,没有出现错误,运行时我们会看到如下错误信息:<br>
Exception in thread "main" java.lang.NoClassDefFoundError:
Hello (wrong<br>
hello/Hello)<br>
at java.lang.ClassLoader.defineClass0(Native Method)<br>
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)<br>
at java.security.SecureClassLoader.defineClass(SecureClassLoader.<br>
1)<br>
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)<br>
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)<br>
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)<br>
at java.security.AccessController.doPrivileged(Native Method)<br>
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)<br>
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)<br>
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)<br>
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)<br>
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313) <br>
<br>
这时,我们在编译的时候,应该这样:javac -d . Hello.java<br>
这样会在当前目录下产生一个新的子目录,目录名字就是hello。<br>
我们可以用一下两种方法运行编译好的文件,在当前目录下,敲入:java hello/Hello或者java hello.Hello ,这样我们就可以看到运行结果了。<br>
<font color="#FF0000"><br>
这里有个问题:</font>若是进入目录hello中,然后敲入:java Hello 运行,则会出现错误:<br>
<br>
Exception in thread "main" java.lang.NoClassDefFoundError:
Hello(wrong<br>
hello/Hello)<br>
at java.lang.ClassLoader.defineClass0(Native Method)<br>
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)<br>
at java.security.SecureClassLoader.defineClass(SecureClassLoader.<br>
1)<br>
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)<br>
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)<br>
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)<br>
at java.security.AccessController.doPrivileged(Native Method)<br>
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)<br>
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)<br>
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)<br>
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)<br>
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313) <br>
<br>
和上面的错误信息一摸一样,不知道该如何解决?大家帮忙看看,为什么进入目录hello中之后,就不能运行编译好的class文件。<br>
<!-- #EndEditable --></td>
<td width="20"> </td>
</tr>
<tr>
<td width="20" height="11"> </td>
<td width="541" height="11"><!-- #BeginEditable "7" --><!-- #EndEditable --></td>
<td width="101" height="11">
</td>
<td width="20" height="11"> </td>
</tr>
</table><div align="center"> <br>
</div>
</td>
</tr>
</table>
<div align="center">
<br>
</div>
</body>
<!-- #EndTemplate -->
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -