据说和io包有关,但是我把io包找遍了,没有相应的方法。

解决方案 »

  1.   

    出了什么错?说说你的环境,远端的环境?
    据我所知,java程序还没有说要分别在不同平台编译才能正常执行的
      

  2.   

    另外,你用的是type几的jdbc驱动啊?
      

  3.   

    我的环境Win2000 Pro,ISP的是Unix。技术咨询过,说是需要重新编译。
      

  4.   

    unix下运行的是什么web服务器?
    既然是jsp问题不如去问JSP版块来的快呢,我不熟JSP.
      

  5.   

    问题本身并非由JSP引发,而是很可能用JSP来解决。
    SQL Server JDBC Driver由Microsoft提供,叫com.microsoft.sqlserver...
    可以在Microsoft.com免费下载的。
    Unix下用Tomcat。我的win2000也用Tomcat。
      

  6.   

    在本地一切正常,在ISP那里的错误信息我根本看不到(隔了上千里,又没有远程管理工具)。
      

  7.   

    可以使用telnet来远程操作的。
    然后将Tomcat下的servlet.jar包加到classpath里编译一下就好了.
    javac -classpath .;servlet.jar *.class 
    你说的用jsp编译是什么意思?
    对方是怎么说的?
    我还是很好奇你的ISP用的unix是什么版本,居然要重新编译....
      

  8.   

    搞错: javac -classpath .;servlet.jar *.java 
      

  9.   

    他们没有开通telnet服务。
    我找到了本地编译的方法:Runtime.getRuntime().exec("javac SomeClass.java");
    这段代码放在CompileServlet的void service(request, response)里面,然后通过一个html的form来激活Servlet,html:<form method="GET" action="http://localhost:8080/examples/servlet/CompileServlet">,路径保证正确,在本地观测Tomcat监视窗口:
    2002-01-29 11:17:29 - ContextManager: Removing context DEFAULT:/examples
    2002-01-29 11:17:29 - ContextManager: Adding context DEFAULT:/examples
    让CompileServlet打印Runtime.getRuntime().exec("javac SomeClass.java")的返回结果(Process),不为null。证明线程已经启动。但是不报错。最后结果没有出现SomeClass.class。
    ***********************
    CompileServlet.java
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import com.ecitygo.pub.*;public class CompileServlet
    extends HttpServlet
    {
    public void service(HttpServletRequest req, HttpServletResponse res)
    {
    try
    {
    Process p;
    p = Runtime.getRuntime().exec("javac ClassServlet.java");
    System.out.println(p);
    }
    catch (java.lang.Exception e)
    {
    System.out.println("error:"+e);
    }
    }
    }
    如果这段代码不同过Servlet方式来实现,比如用CompileJavaClass类。
    *******************
    import java.io.*;public class CompileJavaClass
    {
    private CompileJavaClass()
    {
    } public static void main(String[] args)
    {
    if (args==null||args.length<=0)
    {
    System.out.println("\n用法:\nCompileJavaClass ClassName.java");
    return;
    }
    for (int index = 0; index<args.length; index++)
    {
    try
    {
    Runtime.getRuntime().exec("javac "+args[index]);
    System.out.println("Complied: "+args[index]);
    }
    catch (IOException e)
    {
    System.out.println("Error: compiling "+args[index]+" "+e);
    }
    }
    }
    }
    一点问题都没有。
    技术支持人员说:我没有Web服务器的写权限。我的Web服务器在本机。
      

  10.   

    绝对不是ClassPath的问题,这方面我很谨慎的。
      

  11.   

    那当然了,你的servlet在本机,怎么可以操作远程的命令调用.
    除非你把你调用javac的命令的servlet放在远程机器上,不过还要弄清楚远程的 javac路径才行.
    可是如果出了错你也看不到又有什么用呢?
    既然不愿意开通telnet服务,你干脆就把源码给他们自己编译好了.
      

  12.   

    wolfsquare:问题已经解决了,不像大家说的那样。分数给你,谢谢。