这是一个非常基本的问题,但我无法在任何地方找到答案。我是Java的新手。
github上有一个Java程序,我正试图在我的Mac上运行。相关文档未提供有关编译或运行代码的任何信息。我不想更详细地披露我正在尝试运行的具体程序。
该程序包含多个.java
文件和一个classmexer.jar
文件,用于跟踪内存使用情况。还有一个子文件夹cern
,其中包含最终包含.class
个文件的其他子文件夹。没有makefile。
我已将所有源代码作为tar.gz文件下载并将其解包到~/codeDirectory/
中。当我尝试使用
$ javac *.java
或
$ javac A.java
(其中A.java
是程序调用的第一个类),我得到了几十个编译错误。这段代码清楚地在其他地方成功编译,所以我不确定该怎么做。
出现的第一个错误是
A.java:5: cannot access cern.colt.function.DoubleFunction
class file for cern.colt.function.DoubleFunction not found
cern.jet.random.AbstractDistribution.makeDefaultGenerator();
^
./B.java:4: package com.javamex.classmexer does not exist
import com.javamex.classmexer.*;
^
./B.java:180: cannot find symbol
symbol : variable MemoryUtil
location: class B
long noBytes = MemoryUtil.deepMemoryUsageOf(hp);
^
我怀疑某处有一条不正确或错误的特定路径,但我找不到它。
提前感谢您提供任何帮助疑难解答。
答案 0 :(得分:4)
如果您从github下载了一个Java程序,几乎可以肯定它附带了一个用于Apache Ant的build.xml,或者一个用于Apache Maven的pom.xml,或者用于其他一些构建的其他文件工具。通常,github上的代码库将提供文档,告诉您使用什么工具以及如何使用它。
答案 1 :(得分:0)
我试图运行的程序不完整,并且没有包含两个依赖项的源代码(包括编译器在上面标记的colt
)。感谢Anony-Mousse建议这个选项。安装所有必要的源代码解决了这个问题;开发人员还更新了文件。