[英]“error: cannot find symbol” when compiling with javac using makefile
[英]How can I solve that type of issue when I compile using `javac`: " error: cannot find symbol [...]"?
对于初学者,我不得不说我正在使用IntelliJ IDEA Community Edition 2020.3.1并运行java 15.0.1 2020-10-20 ,当我在启用断言并单击运行按钮后运行我的程序时,它按预期工作. 这里说的是我的文件结构:
这是我的TestRunner.java文件中的代码:
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
public final class TestRunner {
private static final List<Class<?>> TESTS = List.of(CalculatorTest.class);
public static void main(String[] args) throws Exception {
List<String> passed = new ArrayList<>();
List<String> failed = new ArrayList<>();
for (Class<?> klass : TESTS) {
if(!UnitTest.class.isAssignableFrom(klass)){
throw new IllegalArgumentException("Class "+ klass + " must implement UnitTest");
}
for(Method method : klass.getDeclaredMethods()){
if(method.getAnnotation(Test.class) != null){
try{
UnitTest test = (UnitTest) klass.getConstructor().newInstance();
test.beforeEachTest();
method.invoke(test);
System.out.println(method.invoke(test));
test.afterEachTest();
passed.add(getTestName(klass, method));
}catch(Throwable throwable){
failed.add(getTestName(klass, method));
}
}
}
}
System.out.println("Passed tests: " + passed);
System.out.println("FAILED tests: " + failed);
}
private static String getTestName(Class<?> klass, Method method) {
return klass.getName() + "#" + method.getName();
}
}
这是我的问题:
当我使用javac TestRunner.java
编译我的主类TestRunner.java时,它找不到那些符号CalculatorTest.class
、 UnitTest.class
、 Test.class
、 UnitTest
。 这是错误消息:
但是,当我使用javac *.java
时,我的文件编译并生成了我的.class
文件,这是一个屏幕截图:
但是当我尝试使用java TestRunner
运行我的文件时,它说:“错误找不到或加载类TestRunner
,这是一个屏幕截图:
如果有人可以帮助我解决这些问题,我会非常高兴。 到目前为止,当我搜索它们时,我没有找到任何解决方案。 谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.