关于java:Ant Javac和Commandline Javac给出不同的结果 | 珊瑚贝

Ant Javac and Commandline Javac give different results


我有一个类可以导入一些 servlet 库。当我从命令行编译它时很好。

当我使用 ant compile 任务编译它时,它给出了在其路径中找不到 servlet 库的错误。

这是一个已知/常见的情况吗?

这是我的 Ant 目标:

1
2
3
4
<target name=“compile” depends=“prepare” description=“compile the source”>
    <echo>=== COMPILE === SRCDIR: ${src}/com/udfr/src/java </echo> <!– Compile the java code from ${src} into ${build} –>
    <javac srcdir=“${src}/com/udfr/src/java” destdir=“${dist}/WEB-INF/classes”/>
</target>
  • 请添加一些代码,这个问题似乎很模糊
  • 有关的


由于某种原因,当您在命令行中编译程序时,包含 Servlet API 的 JAR 文件是类路径的一部分。但是,它不在 javac Ant 任务的类路径中。

您应该明确地将 JAR 文件添加到您的 javac Ant 任务中的类路径中。有几种方法可以做到这一点;请阅读 http://ant.apache.org/manual/Tasks/javac.html

  • 实际上,有趣的是我的 CLASSPATH 已设置。我的意思是,Javac 有效。只是不是来自我在乔恩回答后发布的ant任务。
  • @Genadinik 我很确定 CLASSPATH Ant 任务会忽略 CLASSPATH 环境变量,因此这可以解释为什么命令行有效而 Ant 任务无效。请尝试在 javac Ant 任务上指定 CLASSPATH 属性。
  • 我不确定——我的猜测是 CLASSPATH 是为特定进程设置的,而运行 ANT(例如 Eclipse)的进程不知道 CLASSPATH。尝试在 Javac 任务本身中设置类路径。
  • 是的,很有趣,添加这个有效: \\\\t \\\\tclasspath=”/usr/local/tomcat/lib/*:/usr/local/jdk1.6.0_24/j??re/lib/ext/servlet.j ??ar” 但是只添加这个没有:\\\\t \\\\tclasspath=”/usr/local/tomcat/lib/*” – 知道为什么更优雅的解决方案在这里不起作用吗?
  • @Genadinik您应该阅读Ant中的路径结构:ant.apache.org/manual/using.html#path


如果您没有在 javac 任务的类路径中正确指定 servlet 库,这是很常见的情况…我怀疑这是问题所在。如果您发布失败的任务和有效的命令行,我们将能够提供更多帮助。

  • 这是 ant 任务: \\\\t <target name=”compile” depends=”prepare” description=”compile the source” > \\\\t \\\\t<echo>=== COMPILE == = SRCDIR: ${src}/com/udfr/src/java </echo> \\\\t <!– 将java代码从${src}编译成${build} –> \\\\t <javac srcdir= “${src}/com/udfr/src/java” destdir=”${dist}/WEB-INF/classes”/> \\\\t </target>
  • @Genadinik:基本上,您根本没有指定类路径。


来源:https://www.codenong.com/5626317/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8955.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?