[英]Cannot find Java Import in Eclipse?
之前,我已經在Eclipse中處理過類似的錯誤,但是我不知道為什么這次要得到它。 我的構建路徑以及“ lib”文件夾中都有Apache Commons IO庫。
我在下面給出了錯誤。 這很簡單。
[javac] Compiling 3 source files to C:\Users\Justian\workspaces\ConnectionCompiler\build
[javac] C:\Users\Justian\workspaces\ConnectionCompiler\src\jab\jm\readers\ExcelReader.java:5: package org.apache.commons.io does not exist
[javac] import org.apache.commons.io.FileUtils;
[javac] ^
[javac] C:\Users\Justian\workspaces\ConnectionCompiler\src\jab\jm\readers\FileManager.java:5: package org.apache.commons.io does not exist
[javac] import org.apache.commons.io.FileUtils;
[javac] ^
[javac] C:\Users\Justian\workspaces\ConnectionCompiler\src\jab\jm\readers\FileManager.java:12: cannot find symbol
[javac] symbol : variable FileUtils
[javac] location: class jab.jm.readers.FileManager
[javac] return FileUtils.convertFileCollectionToFileArray(FileUtils.listFiles(
[javac] ^
[javac] C:\Users\Justian\workspaces\ConnectionCompiler\src\jab\jm\readers\FileManager.java:12: cannot find symbol
[javac] symbol : variable FileUtils
[javac] location: class jab.jm.readers.FileManager
[javac] return FileUtils.convertFileCollectionToFileArray(FileUtils.listFiles(
[javac] ^
[javac] 4 errors
為什么不能導入課程? 甚至建議我使用Eclipse的自動更正功能添加該特定功能。
非常感謝!
瑞斯蒂昂
編輯:
哦。 抱歉。 一次從事多項工作。 當然,這將是一個螞蟻問題。
好。 這是我的構建文件。 有趣的是,這在過去一直有效。 為什么現在不起作用?
<?xml version="1.0" ?>
<project name="ServerJar" default="dist" basedir=".">
<description>
Builds client files into .jar
</description>
<!-- [build variables] -->
<property name="src" location="src" />
<property name="build" location="build" />
<property name="dist" location="dist" />
<target name="init">
<!-- makes time stamp to be used in jar name -->
<tstamp />
<!-- creates build directory structure -->
<mkdir dir="${build}" />
</target>
<target name="compile" depends="init" description="Compiles the source">
<!-- compiles the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}" />
</target>
<target name="dist" depends="compile" description="Generates distributable">
<!-- creates the distribution directory -->
<mkdir dir="${dist}/lib" />
<!-- puts everything in ${build} into the jar file -->
<jar jarfile="${dist}/lib/CC-${DSTAMP}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="jab.jm.Test" />
</manifest>
</jar>
<!-- makes a jar file for quick test execution -->
<jar jarfile="${dist}/lib/CC.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="jab.jm.Test" />
</manifest>
</jar>
</target>
<target name="clean" description="Cleans up the extra build files">
<!-- deletes the ${build} and ${dist} directories -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
編輯:對於將來有這個問題的任何人,這是我的最終構建文件:
<?xml version="1.0" ?>
<project name="ServerJar" default="dist" basedir=".">
<description>
Builds client files into .jar
</description>
<!-- [build variables] -->
<property name="src" location="src" />
<property name="build" location="build" />
<property name="dist" location="dist" />
<property name="lib" location="lib" />
<!-- [path to packages] -->
<path id="master-classpath">
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<!-- makes time stamp to be used in jar name -->
<tstamp />
<!-- creates build directory structure -->
<mkdir dir="${build}" />
</target>
<target name="compile" depends="init" description="Compiles the source">
<!-- compiles the java code from ${src} into ${build} -->
<!-- <javac srcdir="${src}" destdir="${build}" /> -->
<javac destdir= "${build}">
<src path="${src}"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="dist" depends="compile" description="Generates distributable">
<!-- creates the distribution directory -->
<mkdir dir="${dist}/lib" />
<!-- puts everything in ${build} into the jar file -->
<jar jarfile="${dist}/lib/CC-${DSTAMP}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="jab.jm.Test" />
</manifest>
</jar>
<!-- makes a jar file for quick test execution -->
<jar jarfile="${dist}/lib/CC.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="jab.jm.Test" />
</manifest>
</jar>
</target>
<target name="clean" description="Cleans up the extra build files">
<!-- deletes the ${build} and ${dist} directories -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
您發布了Ant的輸出。
除非您以某種方式將Eclipse與build.xml文件集成在一起,否則Eclipse對項目的類路徑的想法與在build.xml中用於構建項目的類路徑是完全獨立且互斥的。
解決方案:在構建類時,請確保build.xml引用commons-io庫。
更新:從您發布的build.xml片段中,您似乎在嘗試編譯沒有類路徑引用的類。 您需要告訴javac
任務在哪里可以找到庫引用。
這是一個使用javac
任務的示例,該任務引用在其他地方聲明的類路徑:
<path id="master-classpath">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<javac destdir="${classes.build.dir}">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
這將設置一個Ant“路徑”,該路徑引用${lib.dir}
屬性指向的目錄中每個以.jar
結尾的文件。 當然,您可以更改此設置以滿足您的需要,例如,如果您只想引用某些命名的jar文件,或者您有幾個包含庫的不同目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.