#java #file-io #path
#java #file-io #путь
Вопрос:
Я пытаюсь запустить команду командной строки cmd с помощью Java, у меня есть путь к источнику и путь назначения, и я переворачиваю изображение. Перевернутое изображение должно быть скопировано в пункт назначения. Изображение копируется, но не перевернутое изображение. Я поделюсь своим кодом ниже, пожалуйста, дайте мне знать, если понадобится что-нибудь еще.
@Test
public void executeCommandJpgDifferentPaths() throws IOException{
Path resourceDirectory = Paths.get("src\main\resources\download.jpg");
Path destination = Paths.get(demoFolder.getAbsolutePath(),"download_output.jpg");
String command = "magick convert -flip resourceDirectory destination " ;
Boolean output = flipImplementation.executeCommand(command);
Files.copy(resourceDirectory,destination);
Assert.assertTrue(output);
try {
Thread.sleep(123456789L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Ответ №1:
Я пробовал это, используя ‘destinationDirectory.resolve’.Нам нужно использовать, как показано ниже :
@Test
public void executeCommandJpgDifferentPaths() throws IOException{
Path resourceDirectory = Paths.get("src\main\resources");
Path resourcePath = resourceDirectory.resolve("download.jpg");
Path destinationDirectory = Paths.get(demoFolder.getAbsolutePath());
Path destinationPath = destinationDirectory.resolve("download_output.jpg");
String command = "magick convert -flip " resourcePath " " destinationPath ;
Boolean output = flipImplementation.executeCommand(command);
Assert.assertTrue(output);
try {
Thread.sleep(123456789L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Ответ №2:
Вы используете простую строку. Но вы должны использовать переменные внутри.
Заменить
String command = "magick convert -flip resourceDirectory destination " ;
с
String command = "magick convert -flip " resourceDirectory.getAbsolutePath() " " destination.getAbsolutePath();
Комментарии:
1. Спасибо за ответ, когда я использую resourceDirectory.getAbsolutePath(), он просит меня переименовать ссылку. Я попробовал с помощью ‘ resourceDirectory’, он выдает исключение, как показано ниже
2. C:UserschitrAppDataLocalTempjunit8466679054766850042ImageMagickoutput.jpg java.nio.файл. Исключение FileAlreadyExistsException: C:UserschitrAppDataLocalTempjunit8466679054766850042ImageMagickoutput.jpg в sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:124) в sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:278) в java.nio.file. Files.copy(Files.java:1274) «файл на самом деле не находится в том месте»