java中classpath路径

问题:

1.服务化程序启动程序,start.java,利用IoC容器机制加载,设计classpath路径下的配置文件,classpath具体指什么路径?

2.开发过程中,在main与test包下均有该配置文件,调用时如何区分?

代码:


public class Startup {

public static void main(String[] args) {
AbstractApplicationContext context = new ApsarasClassPathXmlApplicationContext(new String[] { "classpath:applicationContextXXXXX.xml","classpath:applicationContext-apsarasXXXXX.xml" });
context.registerShutdownHook();
}
}



解释:

1.applicationContext-apsarasXXXXX.xml通过ctrl+shift+r 搜索资源方式未能检索到:

该配置文件不在这个分支上,故检索不到

2.registerShutdownHook方法调用参考

http://doc.okbase.net/huangcongmin12/archive/119071.html

关于classpath路径问题

打开本地工作空间中的java项目,项目根目录下有一个.classpath

作用:配置整个工程的运行环境

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="lib" path="D:/java_package/spring/dependency/com.springsource.org.apache.log4j-1.2.15.jar"/>
</classpath>


代码含义解释:

kind:
  • src:源文件的具体位置,对应,java build path 操作中source 中的一项路径
  • con:运行的系统环境
  • lib:库文件或目录, path为库文件或目录位置。注意: 当指定库文件时(非库目录, 通常是jar包), 应当包含文件名。
  • output:指明为默认class输出路径, path为相应输出路径。注意: 这一条在文件中有且只能有一条
  • var:指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项,指明带有全局编译路径中设置的变量(Window->Prefrences->Java->Build Path->Classpath Variables),path为这个变量目录下的库文件(同样通常是jar包, 好像zip也可以, 也不知道是否还有其它


通过 build path 添加JAR包后,.classpath文件中自动添加文件路径,也可直接修改该文件来添加JAR包

path:源文件路径

output:为这条路径中源文件编译以后class文件的输出路径,对应 java build path 操作中

source选项面板下方 default output path ,所指代的路径

excluding:不包含,**所有,如:

<classpathentry including="**/*.java" kind="src" path="src/main/java"/> 
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/> 
<classpathentry excluding="**/*.java" kind="src" path="src/main/resources/META-INF/spring"/>  


including:额外包含其他目录下的所有java文件
excluding:不包含
   
博文转载: http://jinguo.iteye.com/blog/716693   
   
总结以及拓展:

其中,src是源文件输出目的的,output是类文件输出目的的,con是eclipse运行时所需的核心包,var是通过环境变量的形式增加的一些JAR包,lib是直接加入的JAR包,所以需要加入一些第三方的JAR文件时,直接编辑此文件即可,eclipse不需重启,工程即可生效.

其他,出现下列问题可通过修改此文件解决:

1.导入工程后,项目左上角出现红叉

  可能是MAVEN依赖导入不正确,也有可能是.classpath文件中的一些环境变量的路径不正确

导致的,去掉或指向正确的路径 即可

2.Log Cat的信息是
java.lang.RuntimeException: Unable to instantiate application com.teleca.jamendo.JamendoApplication: java.lang.ClassNotFoundException: com.teleca.jamendo.JamendoApplication in loaderdalvik.system.PathClassLoader@43598650
Caused by: java.lang.ClassNotFoundException: com.teleca.jamendo.JamendoApplication in loaderdalvik.system.PathClassLoader@43598650
的错误。改下.classpath就可以了

博文转载: http://blog.csdn.net/bibingyan/article/details/6678315   

猜你喜欢

转载自mingyundezuoan.iteye.com/blog/2224973
今日推荐