Не лучше ли вам использовать главный класс "Launcher", функция которого состоит в том, чтобы просто отправлять вызовы фактическим классам контроллера, и использовать файл ссылок в качестве окончательной обертки вместо того, чтобы возиться с -cp вариант wm?
В Windows это удивительно легко сделать.
«Основной класс» не должен быть чем-то очень сложным, чем-то вроде
/**
* Sample launcher
*/
public class Launcher {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
if (args != null && args.length > 0) {
String option= args[0];
String[] args2=new String[0];
if( args.length>1){
args2= new String[args.length-1];
System.arraycopy(args, 1, args2, 0, args2.length);
}
if(option.equals("a"));
new ClassA().exec(args2);
else if(option.equals("b"));
new ClassB().exec(args2);
}
}
}
С точки зрения Windows достаточно создать что-то вроде ссылки
javaw.exe -jar "jarfile" "a"
Это очень полезно для размещения ссылки в папке «sendTo» ... один jar, скрытый, вызываемый многими ссылками, которые активируют один из его аспектов, упрощает развертывание обновлений логики jar.
Фактические выбранные файлы передаются в виде списка строк после параметров в определении ссылки.
Таким образом, вы не должны беспокоиться о проблемах с целым классом.