远程编译-topbit 据说和io包有关,但是我把io包找遍了,没有相应的方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 出了什么错?说说你的环境,远端的环境?据我所知,java程序还没有说要分别在不同平台编译才能正常执行的 另外,你用的是type几的jdbc驱动啊? 我的环境Win2000 Pro,ISP的是Unix。技术咨询过,说是需要重新编译。 unix下运行的是什么web服务器?既然是jsp问题不如去问JSP版块来的快呢,我不熟JSP. 问题本身并非由JSP引发,而是很可能用JSP来解决。SQL Server JDBC Driver由Microsoft提供,叫com.microsoft.sqlserver...可以在Microsoft.com免费下载的。Unix下用Tomcat。我的win2000也用Tomcat。 在本地一切正常,在ISP那里的错误信息我根本看不到(隔了上千里,又没有远程管理工具)。 可以使用telnet来远程操作的。然后将Tomcat下的servlet.jar包加到classpath里编译一下就好了.javac -classpath .;servlet.jar *.class 你说的用jsp编译是什么意思?对方是怎么说的?我还是很好奇你的ISP用的unix是什么版本,居然要重新编译.... 搞错: javac -classpath .;servlet.jar *.java 他们没有开通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:/examples2002-01-29 11:17:29 - ContextManager: Adding context DEFAULT:/examples让CompileServlet打印Runtime.getRuntime().exec("javac SomeClass.java")的返回结果(Process),不为null。证明线程已经启动。但是不报错。最后结果没有出现SomeClass.class。***********************CompileServlet.javaimport 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服务器在本机。 绝对不是ClassPath的问题,这方面我很谨慎的。 那当然了,你的servlet在本机,怎么可以操作远程的命令调用.除非你把你调用javac的命令的servlet放在远程机器上,不过还要弄清楚远程的 javac路径才行.可是如果出了错你也看不到又有什么用呢?既然不愿意开通telnet服务,你干脆就把源码给他们自己编译好了. wolfsquare:问题已经解决了,不像大家说的那样。分数给你,谢谢。 发现一个奇怪的JAVA程序,请帮忙看看 【面试题】连接池的优点和缺点是什么,其基本原理是什么 关JAVA 做的SP网关直连程序问题 连接数据库的问题 JAVA打印问题,各种打印方案都没满足我的打印要求,难难难啊,各位帮忙找个好方法 乱!这样也行吗?public final strictfp class RealData 小问题:在线等!!! 强制垃圾回收通知系统回收的问题 appletviewer 是否忽略classpath路径,只认当前路径. 请问用java如何复制一个文件或者文件夹 有没有好的基于java的报表工具? 怎样可以使java的jDialog的右上角的“关闭”置灰
据我所知,java程序还没有说要分别在不同平台编译才能正常执行的
既然是jsp问题不如去问JSP版块来的快呢,我不熟JSP.
SQL Server JDBC Driver由Microsoft提供,叫com.microsoft.sqlserver...
可以在Microsoft.com免费下载的。
Unix下用Tomcat。我的win2000也用Tomcat。
然后将Tomcat下的servlet.jar包加到classpath里编译一下就好了.
javac -classpath .;servlet.jar *.class
你说的用jsp编译是什么意思?
对方是怎么说的?
我还是很好奇你的ISP用的unix是什么版本,居然要重新编译....
我找到了本地编译的方法: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服务器在本机。
除非你把你调用javac的命令的servlet放在远程机器上,不过还要弄清楚远程的 javac路径才行.
可是如果出了错你也看不到又有什么用呢?
既然不愿意开通telnet服务,你干脆就把源码给他们自己编译好了.