Я использовал инструкции, найденные в Maven - как я могу добавить произвольную запись пути к Class-Path
в банку, чтобы добавить произвольную запись в атрибут Class-Path
. Вот мой файл MANIFEST.MF
:
Manifest-Version: 1.0
Class-Path: jace-runtime.jar
Main-Class: org.jace.examples.Test
Я определил org.jace.examples.Test следующим образом:
public class Test
{
public static void main(String[] args)
{
System.out.println("classpath: " + System.getProperty("java.class.path"));
System.out.println("PeerExample: " + Class.forName("org.jace.util.ShutdownHook"));
}
}
где org.jace.util.ShutdownHook
определяется в jace-runtime.jar
. Когда я java -jar peer_example1.jar
я получаю следующий вывод:
classpath: peer_example1.jar
Исключение в потоке "main" java.lang.ClassNotFoundException: org.jace.util.ShutdownHook
Другими словами, Java добавляет исполняемый файл JAR в Class-Path
к классам, но игнорирует Class-Path
к классам. Если я java -cp jace-runtime.jar;peer_example1.jar org.jace.examples.Test
я получаю ожидаемый результат:
classpath: jace-runtime.jar;peer_example1.jar
Есть идеи?