2013-08-01 4 views
0

Я знаю, как проверить файл в определенном каталоге или в определенном каталоге, но я не могу понять, как проверить файл, который находится за пределами jar, который выполняется, но в том же каталоге, что и он: Test.jar - Ran -> Получить местоположение Test.file Test.fileПроверьте, существует ли файл в том же каталоге, что и файл jar

Ответил - Спасибо!

Это прекрасно работает;

final Class<?> referenceClass = Client.class; 
    final URL url = referenceClass.getProtectionDomain().getCodeSource().getLocation(); 
    try{ 
     final File jarPath = new File(url.toURI()).getParentFile(); 
     System.out.println(jarPath); 
    } catch(final URISyntaxException e){ 
     // etc. 
    } 
+0

вы пробовали '/ myfile' путь.? –

+0

Похож на http://stackoverflow.com/questions/3627426/loading-a-file-relative-to-the-executing-jar-file –

+0

Вы правы! Наверное, я просто не говорил об этом правильно, он не появился, когда я публиковал это. Хотя я получил свой ответ, спасибо всем за помощь! – user1782911

ответ

1

Вы можете создать новый файл с помощью операции createNewFile(), получить местоположение этого файла и снова удалить файл. Новый файл будет сгенерирован в том же месте, где выполняется файл jar.

+0

Я думаю, createNewFile() создаст файл в текущем рабочем каталоге Java. То же самое значение можно прочитать из 'System.getProperty (« user.dir »);' –

+0

'Где работает JAR-файл' - это не то же самое, что и файл JAR *. – EJP

0

Местоположение файла JAR дается Class.getProtectionDomain().getCodeSource().getLocation() для любого класса, который, как известно, находится в этом JAR-файле.

Смежные вопросы