黑马程序员技术交流社区

标题: 关于环境变量的 [打印本页]

作者: 金_鑫    时间: 2012-8-4 20:22
标题: 关于环境变量的
本帖最后由 金_鑫 于 2012-8-6 15:05 编辑

又看了几遍关于环境变量的视频,印象还是模糊啊?谁能总结下PATH 和CLASSPATH什么区别 ,具体什么时候用?

作者: 官文昌    时间: 2012-8-4 20:50
path是系统的环境变量,也就是配置jdk的,classpath是你的文件路径,既你的项目编译后的.class文件所指的地方.
什么时候用?????配置环境变量是为了你能正常的在dos命令里面运行java,如果你不配置path变量你是无法运行的,如果用MyEclipse等开发工具等的话,环境变量是不需要配置的,myeclipse会自动寻找jdk安装配置的,并且在myeclipse里面你也可以自己进行相应的jdk和jre配置,配置成你所需要的,但一般都自动配置成你安装的,如果不用myeclipse等开发工具,才会用到环境变量,比如命令提示符性质的。
(java初期是没有这些工具的,你要在dos下运行java必须配置环境变量,这就相当于你在吃饭之前必须学会使用筷子一样,而现在的开发工具可以自动的提示代码,而学生在初期学习时不希望你太依赖工具,)
作者: 杨文宇    时间: 2012-8-4 21:03
path:
环境变量是设置提供操作系统寻找和执行应用程序的路径,操作系统在当前目录下没有找到想要执行的程序和命令,就会去path环境变量里找。
classPath:
告诉虚拟机要加载的类在什么路径下,是jvm加载类的路径,你把classpath 配到了什么路径他就去该路径下找
即:类加载时,java虚拟机会在classpath指定的目录下找对应的.class文件


作者: 杨智    时间: 2012-8-4 21:06

path是os用
classpath java用

path里面不光有Java的bin,还可以包含许多其他的,tc啊,masm阿,只要在path中设了这些环境的路径,你在dos下的任何路径上都可以调用这些路径下的命令。

classpath是java专用的查找类的路径

系统变量是环境变量的一种,环境变量一种仅本用户适用,另一种即系统变量整个系统的用户都适用,两者都可以在使用应用程序时提供快捷.一般在编辑java文件或者C#文件时需要修改,设计到多个文件夹之间的切换时也可以根据自己的需要设置.
简单的说就是,如果设置系统变量和用户变量,都叫做设置环境变量,设置系统变量时,该系统的所有帐号的用户都可以使用,但是设置用户变量时,其他的帐号登陆时就不一定可以使用。

下面以java环境变量为例设置方法:
1、如果是Win95/98,在\autoexec.bat的最后面添加如下3行语句:
JAVA_HOME=c:\j2sdk1.4.1
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib
看好了CLASSPATH中第一个".",这个代表当前目录,很多人HelloWorld没有运行起来大多是这个原因。

2、如果是Win2000或者XP,使用鼠标右击"我的电脑"->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:c:\j2sdk1.4.1
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
CLASSPATH前面的那个"."和上面的意义是一样的。

3、如果是Linux用户
在你的环境中,通常我加在.bashrc文件中,你可以加在你的Profile文件中。
/usr/local/jdk 为你安装jdk的目录。
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
作者: 刘悦    时间: 2012-8-4 21:16
PATH是配置系统环境变量的,例如配置JDK什么的,比如你一个应用程序在D盘的A文件夹下,你在DOS中默认应该是C盘吧,你启动那个程序的时候不能每次都切换盘符到D盘的相应路径下查找吧,为了我们需要随时随地都能够用到这个程序,所以我们需要在PATH中添加应用程序的盘符路径,这样系统执行的你命令的时候会先寻找当前目录,如果没有,再从PATH中依次寻找(注意这点区分与CLASSPATH,正好相反的)。  PATH有永久设置和临时设置就不说了,视频中很清楚。  PATH在我们现在用来给JDK等工具定位什么的,就是为MYECLIPSE服务的。

CLASSPATH是JAVA文件的编译类,即指向后缀名为 *.class文件所存放的位置。  比如我们初期在DOS中要执行一个*.CLASS文件,不可能每次都要换盘符进文件夹吧,用CLASSPATH定位编译类进行执行,这样效率要高得多,随时随地都能用。
不过在后面开发中JAVA文件和编译文件都放在同一个目录下,所以有时候不会设置CLASSPATH,设置了反而会弄巧成拙,因为系统会先搜寻CLASSPATH,你要是正巧有两个相同名称的编译类,一个在CLASSPATH路径下,一个在你需要执行的路径下,那乐子就大了。
幸苦总结,希望能帮助到楼主,也希望能够为自己的表现加一分~
作者: 李震    时间: 2012-8-4 21:19
Path是设备可执行文件的搜索路径,只对文件有效。
当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;
而设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。它主要是针对于寻找用户所要执行的Java程序。
作者: 金_鑫    时间: 2012-8-6 14:54
官文昌 发表于 2012-8-4 20:50
path是系统的环境变量,也就是配置jdk的,classpath是你的文件路径,既你的项目编译后的.class文件所指的地方. ...

明白了 谢谢啊
作者: 刘渝灵    时间: 2012-8-6 20:12
jdk1.5后,即便不设置classpath也没有问题,当然设置一个当前路径“.”也OK。我不久前发现的,大家试试看。
作者: 黑马-张化    时间: 2012-8-6 20:28
  1. Tomcat下JSP、Servlet和JavaBean环境的配置
  2. 经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题,于是总结了一下如何tomcat下配置jsp、servlet和ben,希望对那些初学者有所帮助。
  3. 第一步:下载j2sdk和tomcat:到sun官方站点(http://java.sun.com/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.4.2 Documentation,然后到tomcat官方站点(http://www.apache.org/dist/jakarta/tomcat-4/)下载tomcat(下载最新4.1.x版本的tomcat);
  4. 第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后按默认设置进行安装即可。
  5. 1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):
  6. JAVA_HOME=c:\j2sdk1.4.2
  7. classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径)
  8. path=%JAVA_HOME%\bin
  9. 接着可以写一个简单的java程序来测试J2SDK是否已安装成功:
  10. public class Test{
  11. public static void main(String args[]){
  12. System.out.println("This is a test program.");
  13. }
  14. }
  15. 将上面的这段程序保存为文件名为Test.java的文件。
  16. 然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令
  17. javac Test.java
  18. java Test
  19. 此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。
  20. 2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):
  21. CATALINA_HOME=c:\tomcat;
  22. CATALINA_BASE=c:\tomcat;
  23. 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
  24. classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;
  25. 接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
  26. 第三步:建立自己的jsp app目录
  27. 1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
  28. 2.在webapps目录下新建一个目录,起名叫myapp;
  29. 3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
  30. 4.WEB-INF下新建一个文件web.xml,内容如下:
  31. <?xml version="1.0" encoding="ISO-8859-1"?>
  32. <!DOCTYPE web-app
  33. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  34. "http://java.sun.com/dtd/web-app_2_3.dtd">
  35. <web-app>
  36. <display-name>My Web Application</display-name>
  37. <description>
  38. A application for test.
  39. </description>
  40. </web-app>
  41. 5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
  42. <html><body><center>
  43. Now time is: <%=new java.util.Date()%>
  44. </center></body></html>
  45. 6.重启Tomcat
  46. 7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
  47. 第四步:建立自己的Servlet:
  48. 1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个servlet程序,文件名为Test.java,文件内容如下:
  49. package test;
  50. import java.io.IOException;
  51. import java.io.PrintWriter;
  52. import javax.servlet.ServletException;
  53. import javax.servlet.http.HttpServlet;
  54. import javax.servlet.http.HttpServletRequest;
  55. import javax.servlet.http.HttpServletResponse;
  56. public class Test extends HttpServlet {
  57. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  58. throws ServletException, IOException {
  59. PrintWriter out=response.getWriter();
  60. out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
  61. out.flush();
  62. }
  63. }
  64. 2 .编译
  65. 将Test.java放在c:\test下,使用如下命令编译:
  66. C:\Test>javac Test.java
  67. 然后在c:\Test下会产生一个编译后的servlet文件:Test.class
  68. 3 .将结构test\Test.class剪切到%CATALINA_HOME%\webapps\myapp\WEB-INF\classes下,也就是剪切那个test目录到classes目录下,如果classes目录不存在,就新建一个。 现在webapps\myapp\WEB-INF\classes下有test\Test.class的文件目录结构
  69. 4 .修改webapps\myapp\WEB-INF\web.xml,添加servlet和servlet-mapping
  70. 编辑后的web.xml如下所示,红色为添加的内容:
  71. <?xml version="1.0" encoding="ISO-8859-1"?>
  72. <!DOCTYPE web-app
  73. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  74. "http://java.sun.com/dtd/web-app_2_3.dtd">
  75. <web-app>
  76. <display-name>My Web Application</display-name>
  77. <description>
  78. A application for test.
  79. </description>
  80. <servlet>
  81. <servlet-name>Test</servlet-name>
  82. <display-name>Test</display-name>
  83. <description>A test Servlet</description>
  84. <servlet-class>test.Test</servlet-class>
  85. </servlet>
  86. <servlet-mapping>
  87. <servlet-name>Test</servlet-name>
  88. <url-pattern>/Test</url-pattern>
  89. </servlet-mapping>
  90. </web-app>
  91. 这段话中的servlet这一段声明了你要调用的Servlet,而servlet-mapping则是将声明的servlet“映射”到地址/Test上
  92. 5 .好了,启动Tomcat,启动浏览器,输入http://localhost:8080/myapp/Test 如果看到输出This is a servlet test.就说明编写的servlet成功了。
  93. 注意:修改了web.xml以及新加了class,都要重启Tomcat
  94. 第四步:建立自己的Bean:
  95. 1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个java程序,文件名为TestBean.java,文件内容如下:
  96. package test;
  97. public class TestBean{
  98. private String name = null;
  99. public TestBean(String strName_p){
  100. this.name=strName_p;
  101. }
  102. public void setName(String strName_p){
  103. this.name=strName_p;
  104. }
  105. public String getName(){
  106. return this.name;
  107. }
  108. }
  109. 2 .编译
  110. 将TestBean.java放在c:\test下,使用如下命令编译:
  111. C:\Test>javac TestBean.java
  112. 然后在c:\Test下会产生一个编译后的bean文件:TestBean.class
  113. 3 .将TestBean.class文件剪切到 %CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test下,
  114. 4 .新建一个TestBean.jsp文件,文件内容为:
  115. <%@ page import="test.TestBean" %>
  116. <html><body><center>
  117. <%
  118. TestBean testBean=new TestBean("This is a test java bean.");
  119. %>
  120. Java bean name is: <%=testBean.getName()%>
  121. </center></body></html>
  122. 5 .好了,重启Tomcat,启动浏览器,输入http://localhost:8080/myapp/TestBean.jsp 如果看到输出Java bean name is: This is a test java bean.就说明编写的Bean成功了。
  123. 这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。接下来需要做的事情就是多看书、多读别人的好代码,自己多动手写代码
  124. 详细出处参考:http://www.jb51.net/article/16401.htm
复制代码
本人以前 的 全部总结、、有人曾经看到都哭了  原因很简单 他 配置了2天 没有配置好
作者: 黑马-张化    时间: 2012-8-6 20:31
黑马-张化 发表于 2012-8-6 20:28
本人以前 的 全部总结、、有人曾经看到都哭了  原因很简单 他 配置了2天 没有配置好 ...

不过 我也曾经 配置了好几天 没哟配置好 找到这篇帖子 之后 我也哭了 嘎嘎
作者: 刘悦    时间: 2012-8-6 20:32
黑马-张化 发表于 2012-8-6 20:28
本人以前 的 全部总结、、有人曾经看到都哭了  原因很简单 他 配置了2天 没有配置好 ...

大哥,好多啊,太牛了吧
作者: 黑马-张化    时间: 2012-8-6 20:33
刘悦 发表于 2012-8-6 20:32
大哥,好多啊,太牛了吧

此贴、很隐藏、、、 一般、不外传、 我的 经验笔记里的、、建议 视为家宝
作者: 刘悦    时间: 2012-8-6 20:44
黑马-张化 发表于 2012-8-6 20:33
此贴、很隐藏、、、 一般、不外传、 我的 经验笔记里的、、建议 视为家宝 ...

嘿嘿,必须的,很给力的
作者: 金_鑫    时间: 2012-8-10 18:46
问题已解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2