- 浏览: 51347 次
- 性别:
- 来自: 苏州
最新评论
-
237304457:
好东西,firefox debug 的学习
Firebug JavaScrupt JS 调试 -
lc87624:
能麻烦问一下这是转至哪里的文章吗?想看一下全文
JSP处理session与cookie关系(转载)
我们在系统的环境变量里面添加一个新的变量叫 CLASSPATH。他的描述方法用PATH的描述方法:
可以看到,新的变量 CLASSPATH使用的系统的路径表示的(例如D:\classes\ 就是一个系统的路径),但是不能用环境环境变量PATH,所以不能写成:
%Path%;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
或者
$Path;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
这样当jvm想要调用Java文件(class文件)的时候,不能通过PATH寻找,只能 从CLASSPATH寻找了。
让我们看一个例子:
D:\JavaTest>javac HelloWorld.java
这一步的执行过程是:
1.系统发现启动的程序是javac,于是开始寻找javac.exe。 寻找的次序按照上篇所述寻找notepad.exe的顺序雷同
2.找到之后,运行javac.exe,附加参数HelloWorld.java
3.javac编译HelloWorld.java -> HelloWorld.class
如果HelloWorld.java中有其他类库(类库就是分类整理好的一堆class 文件)的引用,例如:
import java.io.*; import com.hdpan.util.*;
对于标准类库的引用,像上面的"java.io.*",可以直接使用,也就是说它 不需要显示的放在系统的环境变量CLASSPATH中。
而对于非标准类库,像"com.hdpan.util.*",javac怎么来找到它呢? 上面说了,它是通过系统的环境变量CLASSPATH来找:让我们再回顾一下我 们的CLASSPATH是如何设定的:
.;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
然后再看看当前的目录结构:
JAVA中classpath的了解[归纳] - 无风 - 听雨无风
首先找到D:\JavaTest\HelloWorld.java,这个是我们正在编译的文件,接 下来,我们来看看javac是怎么来寻找net.eastdawn.util.*的:
发现是非标准类库,开始搜索CLASSPATH,第一个CLASSPATH是".",也就是当前目录,当前目录有一个net文件夹,然后eastdawn,可是eastdawn文件夹下面没有util文件夹,于是第一个CLASSPATH搜索失败。然后搜索第二个CLASSPATH "D:\classes\",果然再此发现了net\eastdawn\util\,于是这里编译通过。
至此,D:\JavaTest>javac HelloWorld.java 执行完毕。
现在也应该明白为什么在CLASSPATH的前面会有一个 "."了吧?他就是为了优先 搜索当前目录下的class。
运行完javac之后,当前目录多一个文件:HelloWorld.class,运行它:
D:\JavaTest>java HelloWorld
(注意:是java HelloWorld,而不是java HelloWorld.class)
这里用到了java命令,所以启动一个jvm(jvm是什么?看前面的文章吧,:)), 开始搜索CLASSPATH,首先按照"."搜索,在当前目录找到了HelloWorld.class, 于是运行!
现在你明白了为什么许多人别写了HelloWorld却在运行的时候出现这个了吧:
你想对了,就是因为jre不能根据CLASSPATH来找到HelloWorld.class, 哪怕HelloWorld.class就在当前目录,当时环境变量的CLASSPATH里没有 "."这个 设定,同样是找不到!
在web工程下,CLASSPATH的具体目录以及解释是:
classpath是指 WEB-INF文件夹下的classes目录
classes含义:
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml
2.存放模板文件 eg.actionerror.ftl
3.存放class文件 对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口
lib和classes下文件访问优先级的问题: lib>classes
可以看到,新的变量 CLASSPATH使用的系统的路径表示的(例如D:\classes\ 就是一个系统的路径),但是不能用环境环境变量PATH,所以不能写成:
%Path%;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
或者
$Path;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
这样当jvm想要调用Java文件(class文件)的时候,不能通过PATH寻找,只能 从CLASSPATH寻找了。
让我们看一个例子:
D:\JavaTest>javac HelloWorld.java
这一步的执行过程是:
1.系统发现启动的程序是javac,于是开始寻找javac.exe。 寻找的次序按照上篇所述寻找notepad.exe的顺序雷同
2.找到之后,运行javac.exe,附加参数HelloWorld.java
3.javac编译HelloWorld.java -> HelloWorld.class
如果HelloWorld.java中有其他类库(类库就是分类整理好的一堆class 文件)的引用,例如:
import java.io.*; import com.hdpan.util.*;
对于标准类库的引用,像上面的"java.io.*",可以直接使用,也就是说它 不需要显示的放在系统的环境变量CLASSPATH中。
而对于非标准类库,像"com.hdpan.util.*",javac怎么来找到它呢? 上面说了,它是通过系统的环境变量CLASSPATH来找:让我们再回顾一下我 们的CLASSPATH是如何设定的:
.;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
然后再看看当前的目录结构:
JAVA中classpath的了解[归纳] - 无风 - 听雨无风
首先找到D:\JavaTest\HelloWorld.java,这个是我们正在编译的文件,接 下来,我们来看看javac是怎么来寻找net.eastdawn.util.*的:
发现是非标准类库,开始搜索CLASSPATH,第一个CLASSPATH是".",也就是当前目录,当前目录有一个net文件夹,然后eastdawn,可是eastdawn文件夹下面没有util文件夹,于是第一个CLASSPATH搜索失败。然后搜索第二个CLASSPATH "D:\classes\",果然再此发现了net\eastdawn\util\,于是这里编译通过。
至此,D:\JavaTest>javac HelloWorld.java 执行完毕。
现在也应该明白为什么在CLASSPATH的前面会有一个 "."了吧?他就是为了优先 搜索当前目录下的class。
运行完javac之后,当前目录多一个文件:HelloWorld.class,运行它:
D:\JavaTest>java HelloWorld
(注意:是java HelloWorld,而不是java HelloWorld.class)
这里用到了java命令,所以启动一个jvm(jvm是什么?看前面的文章吧,:)), 开始搜索CLASSPATH,首先按照"."搜索,在当前目录找到了HelloWorld.class, 于是运行!
现在你明白了为什么许多人别写了HelloWorld却在运行的时候出现这个了吧:
你想对了,就是因为jre不能根据CLASSPATH来找到HelloWorld.class, 哪怕HelloWorld.class就在当前目录,当时环境变量的CLASSPATH里没有 "."这个 设定,同样是找不到!
在web工程下,CLASSPATH的具体目录以及解释是:
classpath是指 WEB-INF文件夹下的classes目录
classes含义:
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml
2.存放模板文件 eg.actionerror.ftl
3.存放class文件 对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口
lib和classes下文件访问优先级的问题: lib>classes
发表评论
-
JSP处理session与cookie关系(转载)
2011-08-29 16:12 1583为什么登陆后,只要不关 ... -
Hibernate的检索策略
2011-03-29 16:58 929Hibernate的检索策略包括类级别检索策略和关联级别检索策 ... -
Hibernate, Fetch strategy
2011-03-21 17:50 1261转载 主题:关于hibernate延迟加载的错误解决方案 收 ... -
转:JSON
2010-03-19 09:45 863转自:http://blog.csdn.net/lovehon ... -
Java reference 值传递还是应用传递的 争论
2010-02-26 17:34 1242转载自:http://dreamhead.blogbus.co ... -
JAVA JS JSP HTML
2010-02-26 13:49 1088应该注意前后台的分类: 什么时候把计算放在前台 用js或是其它 ... -
Firebug JavaScrupt JS 调试
2010-02-04 10:27 1303安装就不用说了,很简单,在FireFox上插件库里 ... -
Out of memory Error:JAVA ;Out of memory ;Tomcat; PermGen space
2010-01-25 18:17 2849PermGen space的全称是Permanent Ge ... -
IE 和 FIREFOX 的不同点
2009-12-23 12:50 0IE 和firefox再web前端的 css效果有很多显示的不 ... -
JAVA 内部类的使用
2009-11-26 11:09 1128JAVA 内部类的简单总结 定义在一个类内部的类叫内部类,包含 ... -
IE 和 firefox的区别
2009-11-19 14:53 10631.document.formName.item(itemNa ... -
FireFox 调试工具 firebug的使用
2009-09-22 15:40 8464如何使用firebug进行调试 2009-06-05 18:3 ... -
Forward 和SendRedirect
2009-09-10 08:50 9711.RequestDispatcher.forward() ... -
Servlet 学习笔记
2009-09-08 20:54 919Java Servlet 开发工具(JSDK)提供了多个软件包 ... -
JAVA Final 关键字的使用
2009-09-07 22:28 737一、final 根据程序上下文环境,Java关键字final ... -
Hibernate 1对多双向关联时候的 argument mismatch 问题
2009-08-17 16:26 971今天在hibernate 关联的时候 无意中把 set 写成H ... -
JNDI 原理 以及JBoss Demo
2009-08-13 11:24 3598摘要: 本文详细介绍了JNDI的架构与实现,JNDI ... -
Tomcat context initializeContext().lookup()参数的含义
2009-08-12 17:39 2380经常看到对于jndi的操作 server.xml < ... -
Hibernate JDBCTransaction JTATransaction
2009-08-12 15:02 1218Hibernate是对JDBC的轻量级对象封装,Hiberna ... -
DAO 泛型设计
2009-08-12 11:22 1102泛型是JDK1.5的一个新的特性,使用泛型机制 ...
相关推荐
在Spring框架中,ClassPathResource是获取类路径资源的一个重要工具。它允许我们从类路径(classpath)中读取文件,如配置文件、属性文件等,这对于构建和管理Java应用程序非常有用。本篇文章将深入探讨如何使用Spring...
java, 然后兴冲冲地写了个 hello world,然后编译,运行, 等着那两个美好的单词出现在眼前, 可是不幸的是, 只看到了 Can't find class HelloWorld 或者 Exception in thread main java.lang.NoSuchMethodError ...
ClassFinal正是为解决这些问题而设计的一款Java类文件安全加密工具。这款工具能够对编译后的`.class`文件进行加密处理,使得未经授权的用户无法轻易读取或反编译代码,从而提高代码的安全性。 ClassFinal的特点在于...
### Java中的Path与Classpath设置详解 在Java开发过程中,正确配置环境变量是十分重要的一步。其中,`path`和`classpath`是最为关键的两个环境变量,它们直接影响到Java程序能否正常编译和运行。 #### 一、Path 的...
在Spring框架中,`ClassPathResource`是一个非常重要的类,用于加载类路径(classpath)下的资源文件,如XML配置文件。在实际开发中,我们经常需要从类路径中读取这些资源来初始化bean或其他配置。本示例将详细介绍...
`class-path`是Java虚拟机(JVM)在运行Java应用程序时查找类和资源的路径。默认情况下,JVM只会在当前目录(".")下搜索`.class`文件。为了指定额外的目录或JAR文件,我们需要设置`class-path`环境变量或使用`-cp`...
### JAVA将Class文件打包为JAR文件的详细步骤与注意事项 #### 标题与描述概述 在Java开发中,将多个Class文件打包成一个JAR(Java Archive)文件是一种常见的做法,这有助于简化项目的部署过程并提高代码的可管理性...
ClassPathResource resource = new ClassPathResource("file.txt"); InputStream inputStream = resource.getInputStream(); ``` 2. **使用 ResourceLoader**: - Spring 提供了一个 `ResourceLoader` 接口,...
这篇博客“Java类动态加载(一)——java源文件动态编译为class文件”可能主要探讨了如何在运行时将Java源代码(.java)编译成对应的字节码文件(.class),并将其加载到Java虚拟机(JVM)中。以下是对这个主题的详细解析...
下载完成后,将JAR文件添加到MATLAB的classpath,可以使用`addpath`命令或者设置MATLAB的“Java Class Path”环境变量。 在`TestMongo.m`文件中,我们可能会看到以下代码片段,展示了如何初始化MongoDB连接: ```...
Java PathFinder (JPF) 是一个开源项目,专注于Java应用程序的动态分析和验证。它采用了一种称为“符号执行”的技术来探索程序的所有可能执行路径,以检测潜在的错误和漏洞。这个工具的核心部分是“jpf-core”,它是...
Spring容器通过`ClassPathResource`加载配置文件,它可以从类路径(ClassPath)中查找资源。例如,如果我们把`applicationContext.xml`放在`com.test.factory`包下,我们可以这样加载: ```java ClassPathResource ...
Cpp运行Java的class文件,可以编译... options[0].optionString = "-Djava.class.path=./"; args.options = options; args.ignoreUnrecognized = JNI_FALSE; return JNI_CreateJavaVM(jvm, (void **)env, &args); }
spark官方版本的driver-class-path不支持hdfs路径,只支持本地路径。本资源解决了这个问题,driver-class-path在cluster模式时可以支持hdfs路径,解决了cluster模式driver有大量jar依赖的问题。
例如,如果你想从命令行编译一个Java文件,需要使用javac命令,但如果你没有设置PATH环境变量,你需要在每次运行时指定完整路径,例如:C:\Java\jdk1.7.0\bin\javac TestClass.java。 Path变量用于设置所有Java软件...
3. 在打开的对话框中,导航到"Java构建路径"(Java Build Path)。 4. 在"源"(Source)选项卡中,你可以看到项目的源代码目录以及它们对应的输出目录。默认情况下,输出目录应设置为"bin"。 如果你想要通过批处理...
3. **类路径**:Java虚拟机(JVM)在运行时查找类的路径,可以通过系统属性`java.class.path`来设置。类路径可以包含目录、JAR文件以及具有类的任何其他位置。 4. **反射**:Java的反射机制允许在运行时动态地获取...
ClassPathResource resource = new ClassPathResource("beans.xml"); BeanFactory beanFactory = new XmlBeanFactory(resource); ``` - **ClassPathXmlApplicationContext**:可以从类路径下的XML文件加载配置...