首先: 我已经阅读了所有我在这里找到的cannot find symbol
个主题。他们都没有解决我面临的问题。我不是一个专业的Java开发人员,我只是帮助这个课程的同事,所以请放轻松我。
让我先描述一下基本情况:
我有一个名为pdfDownload
的软件包位于 src / pdfDownload 。在这个目录中,我有两个文件:PDFItem.java
和PDFItemParser.java
。
两者都是公共课程。您可以在下面找到所附类的代码。我正在使用Eclipse IDE
显示没有警告也没有错误**。
当我编译它们时,我收到以下错误消息:
PDFItemParser.java:19: cannot find symbol symbol : class PDFItem
location: class pdfDownload.PDFItemParser public static
ArrayList<PDFItem> parseFile(String filePath){
^ PDFItemParser.java:11: cannot find symbol symbol : class PDFItem location: class pdfDownload.PDFItemParser
ArrayList<PDFItem> items = parseFile("data.csv");
^ PDFItemParser.java:20: cannot find symbol symbol : class PDFItem location: class pdfDownload.PDFItemParser ArrayList<PDFItem>
items = new ArrayList<PDFItem>(); /* Creates an ArrayList from type
PDFItem which will contain all parsed ItemObjects */
^ PDFItemParser.java:20: cannot find symbol symbol : class PDFItem location: class pdfDownload.PDFItemParser
ArrayList<PDFItem> items = new ArrayList<PDFItem>(); /* Creates an
ArrayList from type PDFItem which will contain all parsed ItemObjects
*/
^ PDFItemParser.java:21: cannot find symbol symbol : class PDFItem location: class
pdfDownload.PDFItemParser items.add(new PDFItem());
^ 5 errors
类在正确的目录和包中都是公共, 。对于PDFItem
类中的PDFItemParser
,我也会在Eclipse中自动完成。我和我的同事现在已经努力解决这个问题2个小时了。我很抱歉,如果这对你们来说真的很容易,但我们无法解决它,因为这个错误的通常情况并不适用。提前谢谢!
编辑:我在(Mac)终端中编译它们。我在终端中打开路径,然后输入:
javac PDFItem.java
然后
javac PDFItemParser.java
PDFItem - 类代码:
package pdfDownload;
public class PDFItem {
String imageURL;
String pdfURL;
boolean imageLoaded;
boolean pdfLoaded;
String name;
public PDFItem() {
}
public PDFItem(String name) {
this.name = name;
}
}
PDFItemParser - Class Code:
---------------------------
package pdfDownload;
import java.util.ArrayList;
import java.io.*;
public class PDFItemParser {
public static void main(){
ArrayList<PDFItem> items = parseFile("data.csv");
if(items != null){
System.out.println(items.get(0).name);
}
}
public static ArrayList<PDFItem> parseFile(String filePath){
ArrayList<PDFItem> items = new ArrayList<PDFItem>(); /* Creates an ArrayList from type PDFItem which will contain all parsed ItemObjects */
items.add(new PDFItem());
try{
FileInputStream fstream = new FileInputStream(filePath);
DataInputStream in = new DataInputStream(fstream); /* Get the object of DataInputStream */
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) { /* Read File Line By Line */
System.out.println (strLine); /* Print the content on the console */
}
in.close(); /* Close the input stream */
}
catch (Exception e){ /* Catch exception if any */
System.err.println("Error: " + e.getMessage());
}
return items; /* Returns ArrayList */
}
}
答案 0 :(得分:1)
您应该使用此命令编译您的类,以确保您的类进入为package
创建的文件夹: -
javac -d . PDFItem.java
javac -d . PDFItemParser.java
如果在没有-d
标志的情况下编译它,那么您的类不在package
文件夹中,实际搜索它们。因此,PDFItemParser
无法找到您的PDFItem
课程。
另外,请确保您已在路径中添加路径直到package folder
。仅添加路径,直到包含名称的文件夹,而不是类名。
答案 1 :(得分:1)
嘿,你没有合适的main
功能。多数民众赞成:
我改变了这一行
public static void main(){
到
public static void main(String args[]){
PDFItemParser
类中的
现在我可以运行该程序(但是当然它会给出运行时错误)
Error: data.csv (The system cannot find the file specified)null
修改强>
由于我没有data.csv文件,因此预计会出现此错误。
我能够在eclipse
中编译和运行这个程序而没有任何问题