在单个Java类的命令行中使用JUnit编译并运行测试

在单个Java类的命令行中使用JUnit编译并运行测试,java,junit,command-line,Java,Junit,Command Line,我有一个简单的问题,我不知道如何解决 我有一个Java文件User.Java: import java.util.Vector; public class User { private String name; private Vector<User> friends; public User(String name) { this.name = name; this.friends = new Vector<>

我有一个简单的问题,我不知道如何解决

我有一个Java文件
User.Java

import java.util.Vector;

public class User {
    private String name;
    private Vector<User> friends;

    public User(String name) {
        this.name = name;
        this.friends = new Vector<>();
    }

    public void addFriend(User newfriend) {
        friends.add(newfriend);
    }

    public boolean isFriendsWith(User friend) {
        return friends.indexOf(friend) != -1;
    }
}
我想为
User
类运行这个测试类。 我没有使用IntelliJ或Eclipse之类的IDE,所以我想从linux命令行编译测试,但是这个命令:

javac -cp .:"/usr/share/java/junit.jar" UserTest.java
给出了以下错误:

UserTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
                       ^
UserTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
UserTest.java:2: error: package org.junit does not exist
import org.junit.Test;
                ^
UserTest.java:6: error: cannot find symbol
    @Test
     ^
  symbol:   class Test
  location: class UserTest
UserTest.java:11: error: cannot find symbol
       assertEquals(true, user.isFriendsWith(user2));
        ^
  symbol:   method assertEquals(boolean,boolean)
  location: class UserTest
5 errors
注意:我在Stackoverflow上看到的一切都是关于在项目中测试单个文件或使用gradle和…,但我对Java了解不多,也不需要了解太多,我只需要知道为单个Java类创建和运行测试的最简单方法

注2:我已经安装了junit和
apt install junit
,并且它安装了
junit-3-8-2
版本


注3:我在尝试编译我的测试类时遇到问题,我甚至还没有达到运行测试的阶段

在评论部分进行了大量的尝试和错误之后,根本原因是老的JUnit 3.8.2依赖关系。3.x版本使用了不同的名称空间,在4.x中更改为
org.junit

因此,在编译测试时找不到的类


在Linux上用
解压
解压jar可能会有帮助。

主题外,但永远不要使用
向量
@shmosel谢谢,但这是为项目提供给我的代码的一部分!
javac-d/absolute/path/for/compiled/classes-cp/absolute/path/to/junit-4.12.jar/absolute/path/to/TestClassName.java的可能重复项,如上述答案中所述。
junit-3-8-2
是旧方法。它不使用org.junit名称apce afair。至少使用4.x。。根本原因是,在类路径上没有
org.junit.Assert
,因为您使用的libs是在junit团队进行重命名之前。但是您尝试运行的测试使用4.x代码。在windows上,将.jar重命名为.zip并打开它。。应在未安装任何其他软件的情况下工作。我们使用这种技术检查了很多战争(它们也只是zip文件)
UserTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
                       ^
UserTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
UserTest.java:2: error: package org.junit does not exist
import org.junit.Test;
                ^
UserTest.java:6: error: cannot find symbol
    @Test
     ^
  symbol:   class Test
  location: class UserTest
UserTest.java:11: error: cannot find symbol
       assertEquals(true, user.isFriendsWith(user2));
        ^
  symbol:   method assertEquals(boolean,boolean)
  location: class UserTest
5 errors