如何使用ant构建需要外部jar的applet?

时间:2009-11-11 21:35:38

标签: java ant applet

我写了一个非常简单的java applet。它在单击按钮时连接到oracle数据库。它工作正常,当我使用Eclipse运行它时会连接。

但是,当我使用ant创建jar文件时,我不知道如何将ojdbc6.jar包含为类路径。 我该怎么做?

这是我的ant构建文件。我需要的外部第三方Jar文件位于C:\ JarFiles。

<project default="jar">
  <property name="build" value="build"/>
  <property name="java.home" value="C:\Program Files/Java/jdk1.6.0_10" />
  <property name="project.home" value="C:\Documents and Settings\bmcgeary\workspace\New_Holiday_Editor" />

  <property name="build.home" value="${project.home}/build" />

  <path id="files-classpath">  
    <fileset dir="c:/JarFiles" >  
      <include name="*.jar"/>  
    </fileset>  
  </path>  

  <!-- convert classpath to a flat list/string for use in manifest task -->
  <pathconvert property="files-classpath" pathsep=" ">
    <path refid="files-classpath" />
    <flattenmapper />
  </pathconvert>

  <manifest file="MANIFEST.MF">
    <attribute name="Built-By" value="${manifest.built.by}"/>
    <attribute name="Created-By" value="${manifest.created.by}"/>
    <attribute name="Main-Class" value="${manifest.main.class}"/>
    <attribute name="Implementation-Version" value="${version.number}-b${build.number}"/>   
    <attribute name="Class-Path" value="${files-classpath}" />
  </manifest>

  <target name="compile">
    <javac srcdir="." />
  </target>

  <target name="compileProject" description="compiles project Classes">  
    <echo>compiling the project classes</echo>  
    <javac srcdir="src" destdir=".">  
      <classpath>  
    <path refid="files-classpath" />  
      </classpath>  
    </javac>  
  </target> 

  <target name="jar" depends="compileProject" >
    <jar jarfile="myJar.jar"
     basedir="."
     index="true"
     manifest="MANIFEST.MF" />
  </target>


</project>

3 个答案:

答案 0 :(得分:2)

将类路径中的文件(jar)列为相对位置(例如,jar的名称),然后将这些jar放在与applet相同的目录中。 你在浏览器中使用applet吗?或者用appletviewer? 如果是浏览器,请尝试将archive属性设置为yourapplet.jar,ojdbc6.jar

并粘贴已生成的清单,可能存在问题。

答案 1 :(得分:0)

看看这个:http://marc.info/?l=ant-user&m=113147888530744&w=2

你所拥有的是类似的但是存在一些差异,特别是jars所在目录的属性,以及它们如何转换为classpath字符串。

答案 2 :(得分:0)

C:/ JarFiles中是否还有其他子文件夹?如果是这样,则文件集中的include应为<include name="**/*.jar"/>