如何才能在任何目录下只输入“javac 源文件名称 ”就能够编译成功呢?
也就是说,假设源文件位于D:\tomcat_myapp\HelloServlet.java 
现在必须进入DOS环境,D:\tomcat_myapp>javac HelloServlet.java 才能编译成功;
要实现无论当前目录为何,如D:>javac HelloServlet.java 就能编译成功,该如何设置阿?

解决方案 »

  1.   

    要运行Servlet,则需要JSP/Servlet container,我建议初学者用Tomcat。Tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip  然后把这个压缩包解压到:  C:\Tomcat  然后再配置环境变量;添加三个系统变量:JAVA_HOME: C:\JDK
    TOMCAT_HOME: C:\Tomcat
    CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib  Tomcat的环境变量就配置完毕了,下面检验Tomcat是否能够运行:  在控制台中转到C:\Tomcat\bin这个目录,运行startup,然后回出现一个窗口,连跳一大串东西,最后表示Server已经运行。  在浏览器中输入http://localhost:8080/,出现欢迎界面,则表示Tomcat没问题了。然后和上面一样,写入你的第一个Servlet。import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HelloWorld extends HttpServlet
    {
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    {response.setContentType("text/html"); 
    PrintWriter out = response.getWriter();
    out.println("<html><head><title>");
    out.println("This is my first Servlet");
    out.println("</title></head><body>");
    out.println("<h1>Hello,World!</h1>");
    out.println("</body></html>");}
    }   然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.*  那么就是应该把C:\Tomcat\common\lib里面的servlet.jar文件拷贝到C:\JDK\jre\lib\ext中,再次编译,就没有问题了!  然后在Tomcat目录里面的C:\Tomcat\webapps\ROOT里面按如下的文件结构:ROOT\index.html
    ROOT\welcom.jsp
    ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar文件,则放在lib下面)
    ROOT\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class文件放在这个里面)  然后在浏览器中输入http://localhost:8080/servlet/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found   怎么回事呢?  Servlet必须使用C:\Tomcat\webapps\ROOT\WEB-INF这个目录下面的web.xml文件进行注册,用EP打开这个web.xml文件,在里面加入:<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/helloworld</url-pattern>
    </servlet-mapping>    这样的结构<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    </servlet>   表示指定包含的servlet类。而以下的结构:<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
    </servlet-mapping>    表示指定HelloServlet应当映射到哪一种URL模式。  在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld,那么偌大一个Hello,World!等着你呢。
      

  2.   

    我已经设置了TOMCAT_HOME=D:\tomcat,我用的是TOMCAT 4。
    在DOS环境,能否不用进入D:\tomcat_myapp>(输入)javac HelloServlet.java 
    而是无论当前目录为何,如D:>(输入)javac HelloServlet.java 就能编译成功,是否可以这样啊?请大家给个答复?是否存在这种可能性?难道是我的疑问本身的错误吗?
    请指教阿???谢谢!!!
      

  3.   

    要想在DOS 下用JAVA,JAVAC 等命令,还必须在系统变量PATH中添加%JAVA_HOME%\bin,你可以看到这个bin目录里面包含了java,javac等命令,你若不加入该目录,在DOS里自然不能引入这些命令了。CLASSPATH为JVM找包的,其配置就不再重复了。你若想编译某个JAVA源文件,必须进入该文件的当前目录,否则系统是找不到其路径的