Perl Perl CGI 调用 Ant 出错:Unable to locate tools.jar

scmroad · 发布于 2009年8月27日 · 182 次阅读
96

简单的说,写了一个简单的test.cgi的脚本,里边涉及到Ant的只有一句: use CGI; use strict; ...... sub build { $rtv =system("D:/DevEnv/ApacheAnt171/bin/ant -f D:/connectfour-svn/build.xml") ; } ..... 这个cgi脚本在命令行下可以正确执行,执行结果正确,但是如果在网页上点一个按钮,这个按钮调用这个build函数,就会报下面的错误:Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

详细的log信息如下: Save and Restore Example Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar Buildfile: D:\connectfour-svn\build.xml testSVN Ant: [svn] started ... [svn] finished. [echo] Subversion repository url : [echo] http://localhost/svn/scmroad/projects/connectfour-svn [echo] Checking out the head version : 110 clean: [delete] Deleting directory D:\connectfour-svn\target [delete] Deleting directory D:\connectfour-svn\lib [delete] Deleting directory D:\connectfour-svn\src [delete] Deleting directory D:\connectfour-svn\test [delete] Deleting: D:\connectfour-svn\README.txt update: [svn] started ... [svn] finished. compile: [mkdir] Created dir: D:\connectfour-svn\target\classes [javac] Compiling 10 source files to D:\connectfour-svn\target\classes ........

C:\Program Files\Java\jre6\lib 这个路径已经加到系统环境变量里去了,但是还是报错。是不是我们应该在test.cgi文件头部声明一下这个路径,把这个文件引入进来?还是因为其他的原因?

共收到 1 条回复
96
scmroad · #1 · 2009年8月28日

情况是这样的,机器上 1)先装的JRE,位置在 C:\Program Files\Java\jre6 2)然后又装了JDK,位置在 D:\DevEnv\Sun\SDK\jdk

在 D 盘的 D:\DevEnv\Sun\SDK\jdk\lib目录下是有 tools.jar 这个包的,但是在C:\Program Files\Java\jre6 底下没有。

咨询了下同事,解决方法是:把D:\DevEnv\Sun\SDK\jdk\lib\tools.jar拷贝到C:\Program Files\Java\jre6 底下就可以了。

其实我也知道这样能解决,我本来想通过在运行时设置环境变量来解决,这样虽然可以但是事实上并不是我想的那种方式。当然可能我想的那种方法时不可实现的:(

同事建议: JRE,JDK以后都装到C盘根目录下,不要装到Program Files底下,安装路径中不要有空格,这样就不容易出问题。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册