2015-09-11 5 views
-4

я нахожусь на классе Java, я не являюсь не на сервлетJava нет такого файла или каталога

вопрос не дублируется, я не нахожусь на сервлет пожалуйста, ребята.

и классом Java, я имею в виду:

class HelloWorld{} 

Я на сервере, и я хочу, чтобы клиент загрузить файл

это мой код:

@GET 
    @Produces(MediaType.APPLICATION_OCTET_STREAM) 
    @Path("/downloadFile") 
    public Response getFile() { 
     File file = new File("/roma.txt"); 
     System.out.println("path = " + file.getPath()); 
     System.out.println("absoulte path = " + file.getAbsolutePath()); 
     return Response 
       .ok(file, MediaType.APPLICATION_OCTET_STREAM) 
       .header("Content-Disposition", 
         "attachment; filename=\"" + file.getName() + "\"") // optional 
       .build(); 

    } 

файл находится в WebContent моего проекта, как вы видите здесь: enter image description here

я получил это исключение:

java.io.FileNotFoundException: /roma.txt (No such file or directory) 
+0

в системах UNIX '' /roma.txt "- это абсолютный путь, если вы хотите получить доступ к файлу из рабочего каталога программы, удалите'/'с начала пути. – Titus

+0

«/roma.txt» означает, что он будет искать корень иерархии файлов, а ваш файл находится под 'WebContent' под вашей иерархией веб-серверов. Помните, что класс 'File' не знает, что он используется на веб-сервере. – RealSkeptic

+0

@Titus я уже пробовал это, но путь после удаления '/' находится в папке 'Eclipse.app/MacOS', и, конечно, никто не хотел бы помещать туда свои файлы. –

ответ

-2

попытаться удалить "/",

File file = new File("roma.txt"); 

"/roma.txt" может относиться к корневой директории.

Это может работать в Windows, Linux, Mac OSX:

File myFile = new File(System.getProperty("user.home"), "roma.txt"); 

, а затем "roma.txt" будет введен в домашнюю директорию текущего пользователя.

+0

абсолютно неправильно, прочитайте мой комментарий, отвечая на вопрос 'Titus', пожалуйста, –

+0

На самом деле, это должно быть правильно ... – kevintjuh93

+0

Или, может быть, вы можете попробовать поместить его в домашний каталог пользователя: –

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