在线谈谈:classpath 再讨论(简直是恶梦!!!) 别讨论了,看看jdk的文档:docs\tooldocs\findingclasses.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实就是在classpath中加一个 . 的问题。你试了吗。别告诉我你不知道。 package com.cn;public class aaa { public static void main(String[] args) { System.out.println("Hello World!"); }}保存在c;\aa目录下。然后C:\aa>javac -d c:\aa aaa.javaC:\aa>java com.cn.aaaHello World! 粘贴一下收集的:通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。 JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。 PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。 CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。 PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。 下面分别说明三个环境变量在 Windows 和 Linux 下如何设置,不过在此之前,我们需要做个假设。假设 JDK 在 Windows 下的安装路径是 C:\jdk\,在 Linux 下的安装路径是 /usr/local/jdk/。那么,安装后的 JDK 至少会包括如下内容: C:\jdk (/usr/local/jdk) |-- bin |-- demo |-- include |-- jre | |-- bin | `-- lib `-- lib ***** 在 Windows 下设置 Windows 下使用 set 命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的 autoexec.bat 文件中进行设置,如: set JAVA_HOME=C:\jdk set PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;. 有些版本的 Windows 不能用 %变量名% 来替换环境变量的内容,那么就只好直接写 C:\jdk 而不是 %JAVA_HOME% 了。另外,C:\Windows 和 C:\Windows\Command 是 Windows 会自动加入路径的,所以可以从设置中去掉。如果在 autoexec.bat 中已经设置了 PATH,那只需要将 %JAVA_HOME%\bin 加到原来设置 PATH 的那条语句中就行了。 CLASSPATH 也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在 C:\java 中,就可以把 C:\java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。 注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,如: 假设在 C:\java 目录下有可运行的类 HelloJava.class,那么 C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 设置 CLASSPATH 环境变量,注意最后有一个 “.” C:\> cd java // 转到 C:\java 目录 C:\java> java HelloJava // 运行 HelloJava Hello, Java. // 运行结果 C:\java> _ 该例将在 1.3.3 节中分析。 **** 在 Linux 下设置 Linux 下使用“变量名=变量值”设置变量,并使用 export 命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里进行设置,如 export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:. 设置 PATH 时用的 $JAVA_HOME 是指替换变量 JAVA_HOME 的值到 $JAVA_HOME 所在位置。如上句实际就是 export PATH=/usr/local/jdk/bin:$PATH。这句中 $PATH 也是同样的作用,不过这里的 PATH 是指以前设置的 PATH 变量的值,而非本次设置 PATH 变量的值。 注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,例如 假设在 /home/fancy/java 目录下有可运行的类 HelloJava.class,那么 [fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 设置 CLASSPATH,注意最后的“.” [fancy@matrix fancy]$ cd ~/java // 转到 /home/fancy/java [fancy@matrix java]$ pwd // 显示当前目录 /home/fancy/java // 当前目录是 /home/fancy/java [fancy@matrix java]$ java HelloJava // 运行 HelloJava Hello, Java // 运行结果 [fancy@matrix java]$ _ 该例将在 1.3.3 节中分析 ***** 实例分析 1.3.1 节和 1.3.2 节中的用到的实际上是一样的例子,只是操作系统不同,略有差别。 两个例子都提到一个“可运行的类”,它是指包含了 public static void main(String[] args) 方法的类,这将在下一章 HelloJava 一节中详述。例中的 CLASSPATH 均未包含 HelloJava.class 所在的目录(C:\java, /home/fancy/java),但是均包含了当前目录 (.)。因此转到包含 HelloJava.class 的目录下去执行 java HelloJava,在 Java 寻找到 CLASSPATH 中的“. (当前目录,C:\java, /home/fancy/java)”时,找到了 HelloJava.class,运行成功。 wjmmml 兄,你aaa 文件怎么会在aa 目录下找到??不是要放在和包名同名的目录下吗?? 哎,因为我刚到公司,刚坐到这台机器旁边,软件都是别人装的,目录没整理好,弄了这么多天,我才知道,在自己的机器上就有jdk的说明。。真晕啊 to:wjmmml 兄,你aaa 文件怎么会在aa 目录下找到??不是要放在和包名同名的目录下吗??-------------------aa就是c:下的任何一个目录,就是你把你的helloword.java的一个任何目录,可以直接放到c;盘下面,明白了吗?package com.cn;public class hello{ public static void main(String[] args) { System.out.println("Hello World!"); }}保存在c;\aa目录下。然后C:\aa>javac -d c:\aa hello.javaC:\aa>java com.cn.helloHello World!这样明白了吧 1:jdk开发中系统环境变量设置:方法如下:Win2000中:右键我的电脑--》属性--》高级--》环境环境变量classpath=.;jdk安装目\libpath=jdk安装目录\bin注意:一定不可忽略“.”。Win98中:修改autocexe.bat 就是修改自动批处理文件。添加:set classpath=.;jdk安装目\libset path=jdk安装目录\bin;%path%2:(前提设置好了系统环境变量)不带包的编译,相当简单:javac 类名.javajava 类名关于带包的编译问题:如果你的类是带包的,应该用如下方法编译:javac -d 包的父目录 类名.javajava 包名.类名 我一直以为,一个类的包名是什么,就要放到那个名字的目录下呢。即:如果有class a 在 package b.c 中,(b包的子包c中有类 a)就一定有目录 b\c\a.class我的理解是错的拉??别怪我笨,俺们不是在学吗??? 用java访问windows的AD的问题。急!!!帮顶也有分!! 求解!!! 写聊天室时遇到的问题,时间比较短,请大家帮忙~~~~ 是否有用Java语言编写的C++代码分析工具? java 通过stream把图片信息传给flash时,会有图片截取的问题 缺省包里的类无法在其他包里引用吗? java.nio的一个问题 DefaultMutableTreeNode 中的add method的实际意思? 关于Jcreator的一个问题? 请教各位高手一个关于JTree的问题 该段代码的结果是wrong answer,求算法大神 初学问题2 初学问题1
public class aaa
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
保存在c;\aa目录下。然后C:\aa>javac -d c:\aa aaa.javaC:\aa>java com.cn.aaa
Hello World!
JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。
PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。
CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。
PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。
下面分别说明三个环境变量在 Windows 和 Linux 下如何设置,不过在此之前,我们需要做个假设。假设 JDK 在 Windows 下的安装路径是 C:\jdk\,在 Linux 下的安装路径是 /usr/local/jdk/。那么,安装后的 JDK 至少会包括如下内容:
C:\jdk (/usr/local/jdk)
|-- bin
|-- demo
|-- include
|-- jre
| |-- bin
| `-- lib
`-- lib
***** 在 Windows 下设置
Windows 下使用 set 命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的 autoexec.bat 文件中进行设置,如:
set JAVA_HOME=C:\jdk
set PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command
set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.
有些版本的 Windows 不能用 %变量名% 来替换环境变量的内容,那么就只好直接写 C:\jdk 而不是 %JAVA_HOME% 了。另外,C:\Windows 和 C:\Windows\Command 是 Windows 会自动加入路径的,所以可以从设置中去掉。如果在 autoexec.bat 中已经设置了 PATH,那只需要将 %JAVA_HOME%\bin 加到原来设置 PATH 的那条语句中就行了。
CLASSPATH 也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在 C:\java 中,就可以把 C:\java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。
注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,如:
假设在 C:\java 目录下有可运行的类 HelloJava.class,那么
C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 设置 CLASSPATH 环境变量,注意最后有一个 “.”
C:\> cd java // 转到 C:\java 目录
C:\java> java HelloJava // 运行 HelloJava
Hello, Java. // 运行结果
C:\java> _
该例将在 1.3.3 节中分析。
**** 在 Linux 下设置
Linux 下使用“变量名=变量值”设置变量,并使用 export 命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里进行设置,如
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.
设置 PATH 时用的 $JAVA_HOME 是指替换变量 JAVA_HOME 的值到 $JAVA_HOME 所在位置。如上句实际就是 export PATH=/usr/local/jdk/bin:$PATH。这句中 $PATH 也是同样的作用,不过这里的 PATH 是指以前设置的 PATH 变量的值,而非本次设置 PATH 变量的值。
注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时就代表了该路径,例如
假设在 /home/fancy/java 目录下有可运行的类 HelloJava.class,那么
[fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 设置 CLASSPATH,注意最后的“.”
[fancy@matrix fancy]$ cd ~/java // 转到 /home/fancy/java
[fancy@matrix java]$ pwd // 显示当前目录
/home/fancy/java // 当前目录是 /home/fancy/java
[fancy@matrix java]$ java HelloJava // 运行 HelloJava
Hello, Java // 运行结果
[fancy@matrix java]$ _
该例将在 1.3.3 节中分析
***** 实例分析
1.3.1 节和 1.3.2 节中的用到的实际上是一样的例子,只是操作系统不同,略有差别。
两个例子都提到一个“可运行的类”,它是指包含了 public static void main(String[] args) 方法的类,这将在下一章 HelloJava 一节中详述。例中的 CLASSPATH 均未包含 HelloJava.class 所在的目录(C:\java, /home/fancy/java),但是均包含了当前目录 (.)。因此转到包含 HelloJava.class 的目录下去执行 java HelloJava,在 Java 寻找到 CLASSPATH 中的“. (当前目录,C:\java, /home/fancy/java)”时,找到了 HelloJava.class,运行成功。
不是要放在和包名同名的目录下吗??
wjmmml 兄,你aaa 文件怎么会在aa 目录下找到??
不是要放在和包名同名的目录下吗??-------------------
aa就是c:下的任何一个目录,就是你把你的helloword.java的一个任何目录,可以直接放到c;盘下面,
明白了吗?package com.cn;
public class hello
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
保存在c;\aa目录下。然后C:\aa>javac -d c:\aa hello.javaC:\aa>java com.cn.hello
Hello World!这样明白了吧
方法如下:
Win2000中:
右键我的电脑--》属性--》高级--》环境环境变量
classpath=.;jdk安装目\lib
path=jdk安装目录\bin
注意:一定不可忽略“.”。
Win98中:
修改autocexe.bat 就是修改自动批处理文件。
添加:
set classpath=.;jdk安装目\lib
set path=jdk安装目录\bin;%path%2:(前提设置好了系统环境变量)
不带包的编译,相当简单:
javac 类名.java
java 类名关于带包的编译问题:
如果你的类是带包的,应该用如下方法编译:
javac -d 包的父目录 类名.java
java 包名.类名
即:如果有class a 在 package b.c 中,(b包的子包c中有类 a)
就一定有目录 b\c\a.class我的理解是错的拉??别怪我笨,俺们不是在学吗???