gpt4 book ai didi

java - build.xml javac 提示在编译期间缺少 javax.servlet.http 中的类

转载 作者:行者123 更新时间:2023-11-28 22:35:50 26 4
gpt4 key购买 nike

我写了一个build.xml (晚上 8:49 更新)用于 netbeans 项目。我发现 serlvet-api.jar 等 tomcat 库位于目录 C:\apache-tomcat-7.0.35\lib 中。但我不确定我是如何使用 fieldset dirtarget="class_compile" 连接到 tomcat 目录(每次都无需更改 build.xml我希望从另一台计算机编译)。

我已阅读问题 error while including external JARs in ant script ,解决方案是 javac 元素中缺少 classpathref 属性(尽管我的 classpathref 属性似乎是正确的)。

<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>

<target name="class_compile" depends="prepare" description="Compile the whole project">
<javac destdir="${build.classes}"
debug="${debug}"
deprecation="on"
optimize="off"
srcdir="${src.dir}"
classpathref="build.classpath"
includes="*/**"
/>
<copy todir="${build.classes}">
<fileset dir="${src.dir}" includes="**/*.properties"/>
</copy>
</target>

<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<path id="run.classpath" >
<pathelement location="${build.classes}" />
</path>
<mkdir dir="${build.lib}"/>
<mkdir dir="${qa.dir}"/>
</target>

目前,一旦 class_compile 目标被执行,就会报告多个关于丢失类文件的错误。

emma:
Created dir: C:\capstonegroup3\TTTserver\build\emma-instr
Created dir: C:\capstonegroup3\TTTserver\build\emma-reports
prepare:
Created dir: C:\capstonegroup3\TTTserver\build\classes
Created dir: C:\capstonegroup3\TTTserver\build\lib
Created dir: C:\capstonegroup3\TTTserver\build\qa-reports
class_compile:
C:\capstonegroup3\TTTserver\build.xml:152: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
Compiling 21 source files to C:\capstonegroup3\TTTserver\build\classes
C:\capstonegroup3\TTTserver\src\java\AuthServer\AuthenticationInterface.java:8: error: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;

有什么方法可以通过.property 文件将property 设置到tomcat apache/lib 目录?我在我的 build_impl.xml 中看到(由 netbeans 生成,在 -init-private 目标期间包含一个属性文件)。

<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/private.properties"/>
</target>

但我不确定如何为我的 build.xml 访问这些属性。但基本上我在寻找一个解决方案,该解决方案生成到 apache-tomcat\lib 目录的相对路径,并成功编译类文件而不会丢失包。

最佳答案

您应该将 servlet-api.jar 文件声明到 build.classpath,如下所示

<path id="build.classpath">
<fileset dir="C:/apache-tomcat-7.0.35/lib">
<include name="servlet-api.jar" />
</fileset>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>

关于java - build.xml javac 提示在编译期间缺少 javax.servlet.http 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18735882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com