爲了避免在Windows中長期的類路徑問題,我修改了我的build.xml像[1] 引入了一個名爲「temp」的屬性, 「路徑位置」 但現在我得到「類未找到」異常[2]。 如何糾正我的腳本?Ant給CNF的問題,如果我使用<pathelement location =「」>
如果我不使用「temp」屬性並嘗試讀取「temp.classpath」作爲我的「javac」類路徑「我得到長的類路徑問題..(這就是爲什麼我引入該屬性並使」javac 「路徑‘javac.classpath’)
[1]
<target name="init">
<mkdir dir="${class.dir}"/>
<mkdir dir="./../../work/temp/sampleClient"/>
<path id="temp.classpath">
<pathelement path="${class.dir}"/>
<pathelement path="../../lib"/>
<fileset dir="../../repository/components/plugins">
<include name="*.jar"/>
</fileset>>
<fileset dir="../../lib">
<include name="*.jar"/>
</fileset>
<fileset dir="../../lib/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="../../repository/components/extensions">
<include name="*.jar"/>
</fileset>
<fileset dir="../../repository/components/lib">
<include name="*.jar"/>
</fileset>
</path>
<property name="temp" refid="temp.classpath" />
<path id="javac.classpath">
<pathelement location="${temp}"/>
</path>
</target>
[2]
init:
compile:
stockquote:
[java] java.lang.NoClassDefFoundError: samples/userguide/StockQuoteClient
[java] Caused by: java.lang.ClassNotFoundException: samples.userguide.StockQuoteClient
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
我的javac這樣定義; \t \t \t <類路徑REFID = 「javac.classpath」/> \t \t \t 如你所說如果我使用「 classpathref =「temp.classpath」生病在Windows中獲得長類路徑問題...我試圖避免這個問題 –
Ratha
2012-03-30 04:44:25
你可以請發佈有關你提到的「長類路徑問題」的更多細節?堆棧跟蹤是一個CNF,我你的代碼示例的主要問題是 不能工作,因爲引用是用於路徑的對象,而不是一個屬性,所以如果你幸運的話(取決於你的Ant版本),實際的路徑將作爲一個字符串值在temp中展開,那麼你不應該將它用作位置,但改爲使用path =「$ {temp}」屬性。 –
2012-03-30 16:51:11
以下是問題所在 – Ratha 2012-03-30 17:08:52