命令行编译java工程项目 javax.servlet

来源:互联网 发布:金山软件招聘信息 编辑:程序博客网 时间:2024/06/05 23:52
 很久以前的java项目现在需要增加相应的功能。查找到两个需要修改的java文件。修改完毕后使用命令行的方式进行编译。遇到了不少问题。把两个主要问题写在这里供大家参考。
一是环境的配置。因项目在服务器上运行,所以相关环境应该是好的,但是编译时总是提示想关jar文件缺失
如 package javax.servlet does not exist
import javax.servlet.*;可能是classpath文件配置问题,在/etc/profile中添加完毕 source /etc/profile(或者.)执行完毕,编译同样说缺失javax.servlet.* 索性 javac -cp .:/d1/d2/tomcat/lib/servlet-api.jar  d3/d4/d5/f1.java,成功,这里注意,执行此命令需要在 java需要的包的顶层目录,比如d3的父目录,也即看到package d3.d4.d5的语句做调整。一般需要根据项目的工程来做处理。另外-cp参数的:如果是windows系统请改为;。多个jar用冒号隔开。
第二个是遇到的提示信息。 uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
可以忽略
另外还有注意查看class文件的版本,java是高版本jvm兼容低版本的,也即jre 1.5生成的文件可以在1.6上使用,但是反之不行。可以用od -x  f1.class命令
我们会看到类似于下面的输出:


feca beba 0000 3200

这里我们看到前四个字节是Java class的特殊符号,叫做magic字段,用来告诉JVM这是个class文件,之后的两个字节是minor版本号,再之后的两个字节是major版本号,我们看到时32(50=3*16+2),对应下表我们知道32时JDK1.6编译的版本号。
版本          十六进制   


JDK1.5      31


JDK1.6      32 


JDK1.7      33


JDK8         34
0 0
原创粉丝点击