您好我是Java开发的新手。我试着编写一个应该在Linux中运行的makefile:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
Heap.class: FibonacciHeap.java \
FileOperation.java \
MinLeftistTree.java \
RandomPermutation.java \
Heap.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
在我的假设中,Heap.class应该依赖于所有其他java文件。此外,主文件也应该在其中。
然而,我无法让它运行,它显示
Heap.java:3: package heap.FibonacciHeap does not exist
并且无法从其他java文件中找到其他引用,例如
Heap.java:61: cannot find symbol symbol : variable RandomPermutation location: class heap.Heap
list = RandomPermutation.GetList(listnum[route]);
这个程序在日食中运行良好。你有什么建议吗?
我是新手,我可能犯了一些错误......我对编译器和make文件了解不多。如果你能指出来,我将不胜感激!
答案 0 :(得分:0)
我看不到你在哪里设置CLASSPATH。我不在乎它是一个make文件还是Ant - javac.exe和java.exe期望在运行时设置CLASSPATH。你的位置在哪里?
我相信你必须在运行javac.exe之前在makefile中设置CLASSPATH。
我暂时忘记了make(和Eclipse)。你能让这个项目在命令shell中编译和运行吗?如果你不能,我会说你不应该依靠任何工具来帮助你。
阅读this可能会有所帮助。
是否真的需要完成这项任务?教授如何知道您使用Eclipse或make或Ant或命令shell将.java编译为.class文件?