Я создаю приложение, которое принимает ввод через XML-файл и выполняет на его основе ряд операций.Я знаю, что приложение работает, потому что я могу предоставить файл для XML непосредственно в коде, и оно будет работать так, как должно.
Проблема возникает, когда я пытаюсь передать путь к файлу XML через командную строкуАргументы упакованного .jar.
Моя главная выглядит так:
public static void main(String[] args) {
LogWriter.openWriter();
LogWriter.log("Main start.");
Controller controller = new Controller();
LogWriter.log("Controller created.");
List<Parameters> parameters = new ArrayList<Parameters>();
for (int i = 0; i < args.length; i++) {
LogWriter.log("Got arg: " + args[i]);
File file = new File(args[i]);
LogWriter.log("Parameter file: " + file.getAbsolutePath());
if (file.exists()) {
LogWriter.log("File exists. Getting parameters.");
Parameters para = controller.getParameters(file);
LogWriter.log("Attempting to add parameters.");
parameters.add(para);
LogWriter.log("Added parameters.");
} else {
LogWriter.log("File is not valid.");
}
}
}
Сценарий, который я использую для запуска, выглядит так:
java -jar PDFRedacter.jar C:\Users\je\Downloads\XMLConfig.xml
Что такоедействительно странным является то, что он дает сбой только тогда, когда я даю ему правильный файл.Если я предоставляю неверный файл, он запускается и регистрирует, что файл является недействительным, и, как уже упоминалось, он также запускается, если я ввожу действительный файл непосредственно в коде.
Однако с правильным путем, записанным впакет, даже не первый «Главный запуск» регистрируется, поэтому код не запускается вообще.Возможно, это какая-то проблема с доступом?
РЕДАКТИРОВАТЬ: регистратор не моя проблема, он работает как задумано, как с действительным файлом, так и без него.Пример журнала 'Invalid file':
Основной запуск.
Создан контроллер.
Получил аргумент: C: \ Users \ je \ Downloads \ XMLConfig
Файл параметров: C:\ Users \ je \ Downloads \ XMLConfig
Файл недействителен.
Чтобы выяснить, проблема заключается не в чтении файла.Проблема в том, что когда я предоставляю действительный файл через пакетный скрипт, кажется, что мой код вообще не запускается.
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Оказывается, проблема была просто в упаковке моего.банку, не хватает зависимости.Как сказал кто-то еще, мой регистратор только сбрасывал в самом конце исключения, и поэтому ничего не писал.Спасибо за ваши комментарии.