背景
进公司用SSH(Strutsspring和hibernate)开发已经有两个月了但由于一直要么只负责表示层的开发要么只负责业务层的开发要么只负责数据库底层的开发就这样一个毫无JAVA程序开发和Web开发背景的我由于有点面向对象开发的基础也能够协助经理将一个项目给像模像样地完成了现在项目完成了我反而心里觉得空落落的因为虽然自己涉及过web开发的方方面面但至今不会独自进行项目的开发连tomcateclipsejdk……都没有安装过也从没安装过进公司之前别人就已经替我安装好了于是趁着这个端午节天的假日强忍住不出去玩一个人呆在家里打算将那个完成的项目全部迁移到我的笔记本上虽然从没安装过开发和运行环境但做项目这么久也知道需要安装哪些程序或者文件包——jdktomcateclipsemysqlnacicate另加三个框架——strutsspringhibernate废话少说下面进入主题
JDK的安装及其系统环境变量的设置
我直接将公司的jdk安装文件给拷贝回来了一共是M左右不知道是第几版本的我也不管三七二十一一口气先后安装了jdkeclipse和tomcat然后将项目导入eclise结果一打开里面简直惨不忍睹jsp文件似乎并不被识别而java文件里面到处都是错于是上网求助查了大半天似乎最后才明白了一点tomcat必须在elipse之前安装在jdk安装完成之后再安装而jdk和tomcat安装完了之后都必须设置所谓的环境变量并且还要在eclipse中进行配置而我却只是将它们分别安装了一下压根儿就没有进行任何配置这就造成了它们三之间彼此不认识所以eclipse打开的项目自然到处都是错误呵呵这些都是最基本的常识地球人都知道但我是个新手从来不知道原来安装程序后还要对其进行配置还要与其他程序进行关联!我冒着被贻笑大方的巨大风险将这点列在这里是希望后来的新手别像我这样犯如此低级的错误
JDK的卸载
由于我一口气将这三个程序都安装了但后来得知这些都是需要配置的所以我就又将它们全都给卸了好问题来了!我在卸载JDK的时候在开始——程序菜单中没有看到JDK所以就认为也许JDK没有安装到我的电脑上于是就将安装JDK的那个文件夹里的内容全都给删了到最后只有jre那个目录无法删除OK灾难由此开始我的无知导致我的端午节的第一天一整天都在为我的这个过错进行纠正!问题出在我第二次双击jdkSetupexe安装文件时安装的画面总是一闪而过然后报出这样一条提醒的语句你的系统中已经安装了JDK程序是否要继续重新安装?我点确定但没过多久又回到了刚才的那个提醒画面中来于是我就打开开始——控制面板——添加或删除程序在里面找到JAVA UPDATE 和JAVA DEVELOPMENT这两个程序我点击删除但最后总提示说你的安装程序有问题无论我怎样删就是删不掉于是又上网寻求答案百度谷歌了好久看了好多解决方案试了之后都不行例如下载一个更高版本的JDK安装之后将系统中已经安装的JDK覆盖掉又如打开注册表找到JAVASoftware和SUN将这两个注册文件都给删除掉再如下载一个强力卸载工具强制将JDK卸载掉……就这样从上午点试到下午点钟都还没搞定连宝贵的午餐时间都给浪费掉了!但我就是不甘心后来见一高手说在注册表里按Ctrl + F分别输入SUNsunJavajavajreJAVAjdkJDK每查找到一个注册信息如果是左侧栏的注册文件夹就将该文件夹直接删除如果是右侧的键值表就选中右击——删除掉每一个字段都必须反复地查找并删除直到最后再也查找不到为之于是我就照着此法去做一直删了个多小时才终于全部删除干净没想到安装一个JDK在注册表中竟然注册了这么多信息!好了既然都删掉了我就开始安装了但是结果让我很失望系统竟然还是提示说我的电脑上已经安装了JDK!这简直让我无语!我想注册表里的与JDK有关的信息都已经被我删除掉了那么安装程序又是从哪里又找到JDK的蛛丝马迹的呢?难道是注册表里的信息还没删除干净?于是我又打开注册表又查找刚才那一个字眼没想到这次又查找到了若干于是又一一删除删除完了为了确认这次是不是已经全部删除干净我重启了电脑并打开注册表继续查找结果这一次再也没找到于是我打开开始——控制面板——添加或删除程序好了这一次再也没有那个JAVA UPDATE和JAVA DEVELOPMENT的程序了于是我再次双击JDK的安装程序好了这次终于可以正常安装了总算是迈出第一步了!
这里还要提醒大家的是安装上面的方法还是并不一定 就行的如果其他程序中已经关联上了JDK比如eclipse或tomcat那么可能还需要将这些程序也都删除或卸载掉才行!
JDK的环境变量设置
JDK安装好了之后必须设置其环境变量这样也方便以后程序的编译和运行!
但是为了大家阅读方便我这里再贴出来
首先右键点我的电脑打开属性然后选择高级里面的环境变量在新的打开界面中的系统变量里需要设置三个属性java_homepathclasspath其中在没安装过jdk的环境下path属性是本来存在的而java_home和classpath是不存在的
首先点新建然后在变量名写上java_home顾名其意该变量的含义就是java的安装路径呵呵然后在变量值写入刚才安装的路径E:\Java\jdk_其次在系统变量里面找到path然后点编辑path变量的含义就是系统在任何路径下都可以识别打开该变量时会发现其
变量值后面的文本框中已经有了内容我们不要删除这些内容而是按End定位到该文本框的末尾如果末尾有一个分号;就直接添加JAVA命令所在的路径如果没有分号则需要添加一个分号后再添加JAVA命令的路径
java命令的路径是%java_home%\bin;%java_home%\jre\bin(其中%java_home%的意思为刚才设置java_home的值)也可以直接写上E:\Java\jdk_最后再点新建然后在变量名上写classpath该变量的含义是为java加载类(class or lib)路径只有类在classpath中java命令才能识别其值为;%java_home%\lib;%java_home%\lib\toolsjar (要加表示当前路径)与%java_home%有相同意思
以上三个变量设置完毕则按确定直至属性窗口消失下来是验证看看安装是否成功先打开开始>运行打入cmd进入dos系统界面然后打java version如果安装成功系统会显示java的版本信息
另外安装java时安装jdk 和 jre要有两个目录安装时都选择在同一目录会出现bin和lib文件覆盖现象从而出现无lib\toolsjar文件的现象到时即使正确设置了环境变量后javac也不可用!!因此安装jdk后一定要看下在jdk\lib下是否有toolsjar文件有的话按照上面的方法设置环境变量就ok了
写一个经典的JAVA程序——Hello World
这个程序最然简单但很经典之所以经典自有其道理诸君请看
首先开启文本编辑器如txt新建一个文本文件写入如下代码
public class HelloWorld!{
public static void main(String args[]) {
Systemoutprintln(Hello World!);
}
}
然后关闭编辑器重命名本文件为HelloWorldjava注意如果文件里的类名为helloworldt则本文件名也要改为helloworldjava即文件名必须与类名相同大小写也要必须一样!
然后开始——运行或者直接安装Win + R打开命令行输入cmd点击确定或回车后就打开了命令符窗口如果刚才的Testjava
文件保存在f:\中则在该窗口中输入f:然后回车光标处为F:\>这时输入javac Testjava然后回车再输入java Test然后回车
Ok如果一切正常的话窗口中会显示This is a test program这一行文字否则肯定会出错下面便是常见的几种错误类型及其解决方案
* 错误
javac 不是内部或外部命令也不是可运行的程序或批处理文件
(javac: Command not found)
产生的原因是没有设置好环境变量pathWin下在autoexcebat中加入path=%path%;c:jdkinWin下则控制面板>系统>高级>环境变量>系统变量看到了?双击Path在后面加上c:jdkin当然我们假设JDK安装在了c:jdk目录下(有点唐僧了?)好像还要重启系统才起作用(//知道了!//西红柿)好再试试!javac HelloWorld
* 错误
HelloWorld is an invalid option or argument
拜托给点专业精神java的源程序是一定要存成java文件的而且编译时要写全java呀
OK javac HelloWorldjava (这回总该成了吧?)
* 错误
HelloWorldjava:: Public class helloworld must be defined in a file called
HelloWorldjava
public class helloworld{
^
这个问题嘛是因为你的类的名字与文件的名字不一致(谁说的明明看到人家都有这样写的 ( ) OK准确地说一个Java源程序中可以定义多个类但是具有public属性的类只能有一个而且要与文件名相一致还有main方法一定要放在这个public的类之中这样才能java(运行)这个类另外一点是Java语言里面是严格区分大小写的初学者要注意呀像上例中 helloworld 与 HelloWorld 就认为是不一样因而oh 好改好了嘻嘻 javac HelloWorldjava(咦怎么什么也没有呀?)//faint 这就是编译通过了!看看是不是多了一个HelloWorldclass ?(hehe按书上教的:) java HelloWorld (!! 这个我知道不是java HelloWorldclass哟)
* 错误
Exception in thread main javalangNoClassDefFoundError: HelloWorld
呵呵这个嘛就是着名的类路径(classpath)问题啦实际上类路径是在编译过程就涉及的Java中的概念classpath就是指明去哪里找用到的类就这么简单由于我们的HelloWorld没用到其它的(非javalang包中的)类所以编译时没遇到这个问题运行时呢就要指明你的类在哪里了解决方法嘛可以用下面的命令运行
java classpath HelloWorld就代表当前目录当然这样做有点麻烦(是太麻烦!)我们可以在环境变量中设置默认的classpath方法就照上述设置path那样将classpath设为
classpath=;c:jdklibdtjar;c:jdklib oolsjar 后面的两个建议也设上
以后开发用的着java classpath HelloWorld(再不出来我就不学java了)
* 错误
Exception in thread main javalangNoSuchMethodError: main
(//咣当)别坚持住看看你的代码问题出在main方法的定义上写对地方了吗
是这样写的吗
public static void main(String args[]) { //一个字都不要差先别问为什么了
对包括大小写!
java classpath HelloWorld (听天由命了!)
Hello World!
(faint!终于)
欢迎来到Java世界!所以说无法运行HelloWorld 真的并不是一个最简单的问题
tomcat的安装及其环境变量的设置
第一步去tomcat官方网站上下载一个压缩文件解压下来即可不需安装
第二步接下来就是设置环境变量了注意tomcat的环境变量与jdk相关联因此必须先安装好jdk并设置好其环境变量后再开始安装tomcat
在我的电脑>属性>高级>环境变量>系统变量中添加以下环境变量(假定你的tomcat安装在e:\tomcat)
CATALINA_HOMEc:\tomcat
CATALINA_BASEc:\tomcat
TOMCAT_HOME: c:\tomcat 如果是第一次设置tomcat的环境变量上面的这三个变量都是没有的因此都需要新建以第一个变量为例点击新建输入变量名为CATALINA_HOME输入变量值为c:\tomcat然后修改环境变量中的classpath(这一步与上面jdk相关联这里的classpath变量便是上面在安装jdk时所创建的环境变量)把tomat安装目录下的common\lib下的servletjar追加到classpath中去修改后的classpath如下classpath=;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar;%CATALINA_HOME%\common\lib\servletapijar(注意末尾最好别加分号) 注意双击打开classpath变量时其值为jdk的相关值即
;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar现在要追加tomcat的该变量值需要先在末尾添加一个分号(如果末尾有分号就不必添加了)然后再添加tomcat的值 %CATALINA_HOME%\common\lib\servletapijar
【注意最新版本的Tomcat中可能没有common这个文件夹了所以servletapijar应该的路径为
%CATALINA_HOME%\lib\servletapijar;请根据自己的情况自己修改!】
接着可以启动tomcat在IE中访//localhost:如果看到tomcat的欢迎页面的话说明安装成功了
再接着找到tomcat目录下的conf文件夹用editplus打开serverxml找到把端口改为在最后添加URIEncoding=utf重新启动服务器输//localhost如果成功就可以看到tomcat的欢迎页面
第三步建立自己的jspapp目录
到Tomcat的安装目录的webapps目录可以看到ROOTexamplestomcatdocs之类Tomcat自带的的目录
在webapps目录下新建一个目录起名叫myapp
myapp下新建一个目录WEBINF注意目录名称是区分大小写的
WEBINF下新建一个文件webxml内容如下
<?xml version= encoding=ISO?> <!DOCTYPE webapp
PUBLIC //Sun Microsystems Inc//DTD Web Application //EN
app__dtd>
<webapp>
<displayname>My Web Application</displayname>
<description>
A application for test
</description>
</webapp>
在myapp下新建一个测试的jsp页面文件名为indexjsp文件内容如下
<html><body>
<center>
Now time is: <%=new javautilDate()%>
</center>
</body>
</html>
重启Tomcat
打开浏览器输入 看到当前时间的话说明就成功了
如果在这一步出现如下错误
exception
javaxservletServletException: javaxservletServletException: javalangNoClassDefFoundError: javax/el/ELResolver
那就检查一下Tomcat/lib下是否已经有elapijar elrijar两个jar文件没有则拷贝到此目录下重启Eclipse测试同时如果机器上已经有Eclipse又安装MyEclipseMyEclipse会自动查找jre他首先检测到的是C:\Program Files\Java(jdk安装目录)中的jre而不是C:\Program Files\Java\jdk_中的jre原先的Eclipse的jre也随之改动(解决方法(Eclipse为例MyEclipse类似)window>preferences>Java>Installed JRES>Edit>更改jre home为C:\Program Files\Java\jdk_)如果还不行就将elapijar包也添加到classpath环境变量中去
第四步建立自己的Servlet
写入你的第一个Servlet:
在你新建的Application myapp/WEBINF/classes/test目录下新建HelloWorldjava
package test;
import javaio*;import javaxservlet*;
import javaxservlethttp*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest requestHttpServletResponse response)th
rows ServletExceptionIOException
{
responsesetContentType(text/html);
PrintWriter out = responsegetWriter();
outprintln();
outprintln(
HelloWorld!
);outprintln();
}
}
然后照样用javac HelloWorldjava来编译这个文件如果出现无法import javaxservl
et*
那么就是应该把C:\Tomcat\common\lib里面的servletapijar文件拷贝到C:\JDK\jre\lib\ext中再次编译就没有问题了!
然后在Tomcat目录里面的C:\Tomcat\webapps\myapp里面按如下的文件结构
myapp\indexjsp
myapp\WEBINF\classes\test\HelloWorldclass(把上面生成的HelloWorldclass文件放在这个
里面)
然后在浏览器中输//localhost:/myapp/HelloWorld于是Server众望所归的报错了:Error Not Found
怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\myapp\WEBINF这个目录下面的webxml文件进行注册
用EditPlus打开这个webxml文件
在添加下面这段程序:
<servlet><servletname>HelloWorld</servletname>
<servletclass>testHelloWorld</servletclass>
</servlet>
<servletmapping>
<servletname>HelloWorld</servletname>
<urlpattern>/HelloWorld</urlpattern>
</servletmapping>
为什么呢?
因为 这样的结构
HelloWorld
testHelloWorld//类的路径
表示指定包含的servlet类
而以下的结构
HelloWorld
/HelloWorld
表示指定HelloServlet应当映射到哪一种URL模式
在修改webxml完毕过后重新启动Server然后再输//localhost:/myapp/HelloWorld那么偌大一个HelloWorld!等
着你呢恭喜你!
第五步建立自己java Bean
在你新建的Application myapp/WEBINF/classes/test目录下新建TestBeanjava
package test;public class TestBean
{
private String name =null;
public TestBean(String nameInit){
thisname = nameInit;
}
public void setName(String newName){
thisname=newName;
}
public String getName(){
return thisname;
}
}
然后照样用javac TestBeanjava来编译这个文件
然后在你新建的应用程序目录myapp下新建一个新的jsp文件testBeanjsp
<%@ page import=testTestBean %><html>
<head>
<title>Test Bean</title>
</head>
<body>
<center>
<%
TestBean testBean = new TestBean(Http://);
%>
Java Bean Test:
The authors blog address is<%=testBean.getName()%>
好了确定各个文件的位置
myapp\indexjspmyapp\testBeanjsp
myapp\WEBINF\webxml
myapp\WEBINF\classes\test\HelloWorldclass
myapp\WEBINF\classes\test\TestBeanclass
重启Tomcat如果需要的话在浏览器输入:幸运的话就会看到:
Java Bean Test: The authors blog address isHttp://
这样就完成了整个Tomcat下的jspservlet和javabean的配置
第六步配置虚拟目录
打开 Tomcat\conf\serverxml 文件在 和 之间加入
<Context path=/myapp docBase=D:\myapp debug= reloadable=true crossContext=true />