Так что есть только один способ узнать. Я написал тест :)
├── example
│ ├── example.iml
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ │ └── test
│ │ ├── Bar.java
│ │ └── Foo.java
│ └── test
│ └── java
│ └── testexample
│ └── TestFoo.java
├── pom.xml
├── test.iml
└── web
├── pom.xml
├── src
│ ├── main
│ │ └── java
│ │ └── test
│ │ └── Foo.java
│ └── test
│ └── java
│ └── junittest
│ └── TestFooInWeb.java
└── web.iml
16 directories, 11 files
Я обнаружил, что при TestFoo.java
печати
Hello from example.jar
Hello from example.jar
А для TestFooInWeb.java
отпечатков
Hello from web app
Hello from web app
Оба теста имеют это в классе теста:
public class TestFooInWeb/TestFoo {
@Test
public void testHello() {
System.out.println(new Foo().sayHello());
}
@Test
public void testHelloFromBar() {
new Bar().sayHelloForFoo();
}
}
Так что все в конце я стою исправлено. Вы можете загружать совершенно другой класс, и все файлы Jar будут использовать этот новый класс. Это имеет смысл, потому что ClassLoader
сначала будет смотреть на каталог классов. Я не уверен, согласен ли я с этим, потому что это звучит подозрительно, и я могу перезаписать классы безопасности.