在Terminal中编译/运行Java文件

我正在尝试运行一个调用多个文件的文件,但是我遇到了一些错误。

在名为day4Measurement的当前目录中,我有13个文件:BuggyMeasurement.java,BuggyMeasurement01.java,BuggyMeasurement02.java,BuggyMeasurement03.java,BuggyMeasurement04.java … BuggyMeasurement10.java,MeasurementTest.java和Measurement.java。

Measurement.java包含main()并调用所有其他文件。

这是main()

public static void main(String [] args){ JUnitCore tester = new JUnitCore(); String s = "Failed to detect: "; int count = 0; String [] tests = {"toString prints reverse inches then feet", // 01 "plus modifies this", // 02 "minus modifies this", // 03 "multiple modifies this", // 04 "plus incorrect roll over", // 05 "minus incorrect roll over", // 06 "multiple incorrect roll over", // 07 "plus incorrect non-roll over", // 08 "minus incorrect non-roll over", // 09 "multiple incorrect non-roll over", // 10 "CORRRRECTTT!!!" }; for (int i = 1; i < tests.length + 1; i++){ testRound = i; System.out.println("Running: " + tests[i-1]); TestRunner.run(day4Measurement.MeasurementTest.class); Result temp = tester.run(day4Measurement.MeasurementTest.class); if (temp.wasSuccessful()) { s += tests[i-1] + "; "; count++; } } System.out.print(10-(count-1)*0.5 + " "); System.out.println(s); } 

在Mac终端,我跑

 javac Measurement.java 

我遇到了问题。 这是我得到的:

在此处输入图像描述在此处输入图像描述

有什么建议么?

一旦你有一个目录中的所有文件(它们可能在子目录中 – 只要它们都在一些共享目录中),让我们称之为dir,使用以下命令:

 javac -classpath dir Measurement.java 

假设您正在从Measurement.java所在的同一目录运行该命令。如果没有,并且以这种方式更安全,请将其作为dir和Measurement.java的显式路径,例如:

 javac -classpath /home/yourusername/dir /home/yourusername/dir/Measurement.java 

这告诉java编译器“我想编译Measurement.java,这里就是它的位置,在这里你可以找到它需要的所有类和/或源文件。” 然后它将只编译Measurement.java引用的文件,因此您无需担心偶然编译所有Java文件。

要检查的一件事是确保这些文件的目录结构反映了包结构。 例如,如果ABC类的包是com.foo,那么您的ABC.java文件应该存在于com / foo文件夹中。

使用javac * .java编译所有文件