【Java Web总结】Java Web项目中 的.classpath、.mymetadata、.project文件的作用

Java Web项目中 的.classpath、.mymetadata、.project文件的作用

昨天因为编写的Servlet文件编译后生成的.class文件没在项目的WebContent/WEBINF/classes目录下,导致各种报错

原因是我的项目的.class文件都在build路径下

既然项目中存在.class文件

怎么放在build中就报错,在WebContent/WEBINF/classes目录下就可以运行呢

原来和项目的.classpath文件配置有关

正好对Java Web项目中的.classpath、.mymetadata、.project三个文件还不熟悉

就干脆一起学了

1、.classpath文件

【用途】.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH,配置整个工程的运行环境。

.classpath文件内容:



	
	
		
			
		
	
	
		
			
		
	
	
	
	

看到这里,我发现了昨天报错的原因了
【Java Web总结】Java Web项目中 的.classpath、.mymetadata、.project文件的作用_第1张图片
重点在这一句:


这一句就说明了Servlet编译后生成的.class文件输出路径在WebContent/WEB-INF/classes"/

加载也就是在这里加载,如果这个目录下没有.class文件当然404找不到

再具体说明一下各参数的意义:

  • src是源文件具体目的地;
  • output是类文件输出目的的;
  • con是eclipse运行时所需的核心包;
  • var是通过环境变量的形式增加的一些 JAR包;
  • lib是直接加入的JAR包;

再看一份标准.classpath文件:



    
    
        
            
            
        
    
    
        
            
            
        
    
    
    
        
            
            
        
    
    
        
            
        
    
    
    
        
            
        
    
    
    
        
            
            
            
        
    
    
    
        
            
        
    
    
    

【注意】.classpath文件可以从同类型的项目中直接拷贝,有些目录没有的话,注意删掉对应的classpathentry,其他基本无需修改,如果有问题再考虑去改。但如果从别人的机器里拷贝,需要关注三点:

Java SDK的配置:如果Java SDK类型设置的是配置界面中的“Alternate JRE”,那么除非自己机器上装了对方机器名字一样的JDK(不是类型或者版本,而是Installed JREs配置中的名字),否则就需要修改JDK的配置。推荐使用配置界面中的“Execution Environment”来配置,避免绑定具体的JDK版本和实现,如
如果Web项目使用了Web容器且绑定了project facet,那么就需要考虑Web容器配置的问题了,以Apache-tomcat为例,需要增加,而"Apache-Tomecat v7.0"字符串需要与Eclipse Preferences里Server/Runtime Environments里的name一列保持一致。

2、.mymetadata文件

【用途】部署项目用的,把项目部署到Tomcat服务器上时,如果没有这个文件,用myeclipse/Eclipse部署是不能部署到关联的tomcat服务器。

.mymetadata文件内容:

  
  
  
      
  
  

再具体说明一下各参数的意义:

  • type : 工程类型

  • name : 工程名称

  • id : 工程在工作空间内的唯一标识

  • context-root : 网站根路径

  • j2ee-spec: J2EE标准

  • archive : 打包后war文件

  • value : Web根目录名称

    3、.project文件

【用途】.project是项目文件,项目的结构都在其中定义。
.project文件内容:



    
    demo
    
    
    
    
    
    
    
        
            
            org.eclipse.wst.jsdt.core.javascriptValidator
            
            
            
        
        
            org.eclipse.jdt.core.javabuilder
            
            
        
        
            org.eclipse.wst.common.project.facet.core.builder
            
            
        
        
            org.eclipse.m2e.core.maven2Builder
            
            
        
    
    
    
        
        org.eclipse.jem.workbench.JavaEMFNature
        org.eclipse.wst.common.modulecore.ModuleCoreNature
        org.eclipse.jdt.core.javanature
        org.eclipse.m2e.core.maven2Nature
        org.eclipse.wst.common.project.facet.core.nature
        org.eclipse.wst.jsdt.core.jsNature
    

再具体说明一下各参数的意义:

  • 工程名
  • 工程注释描述
  • 运行时需要的额外Eclipse插件,及其具体加载方式信息
  • 链接工程外部的资源,链接后可以看做是在本工程的资源来使用,但并不在本地创建相应的资源
  • JavaSrc为本工程显示的资源名称;
  • 2资源类型(1–文件,2–目录。貌似除了1表示文件,x.x形式的带小数点的都表示文件,无论小数点后有几位和小数点前的数有多大)
  • D:/workspace/study/petstore/src为工程外部链接的资源

【注意】.project文件可以从同类型的项目中直接拷贝,但需要修改/projectDescription/name里的项目名称。

相关技术文章:
【Java Web问题解决】【Java Web问题解决】提交表单后显示乱码
【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别?
【总结】表单提交的get和post有什么不同?
【总结】Java Web 中的4种属性范围(page、request、session、application)
【Java Web问题解决】Tomcat报错javax.servlet.ServletException: Error instantiating servlet class.报错404
【Java Web问题解决】Tomcat启动时控制台出现中文乱码的问题解决方法
【Java示例项目】java实现通过身份证号码判断籍贯所在地区

你可能感兴趣的:(Java,Web)