29 июн 2007 19:01 | |
Сообщения:3
|
Помогите, пожалуйста, новичку :( . Программа работает под линуксом. Необходимо читать файл с виндовой машины. Как это реализовать? (Если подскажите еще, где можно почитать, будет просто замечательно).
|
29 июн 2007 21:19 | |
Сообщения:3874
|
Немного не понятен вопрос: ваша программа запускается И под Линуксом И под виндой?
|
29 июн 2007 21:40 | |
Сообщения:3
|
gesser, спасибо что откликнулись.
Ваши рекомендации на этом сайте многим помогли. А ситуация такая: была программа, которая стояла на виндовом сервере, и парсила логи другого виндового сервера (обычный FileInputStream("\\server\log\1.log"). Теперь сделали сервер на линуксе и перенесли туда эту прогу. Поскольку она перестала работать - попросили переделать. Брать файл по ftp не хотят. Но я в Java разбираюсь слабо - может подскажите как это организовать можно. Чисто пару идей подкиньте :)... Будем сильно признательны |
29 июн 2007 22:44 | |
Сообщения:3874
|
Есть одна идея, но про тонкости реализации не скажу (не пробовал, а оттестить негде): Возможно стоит зашарить папку на виндовом сервере и стучаться туда по SMB с линуксовой машины. Думаю вам может понадобится http://jcifs.samba.org/.
|
02 июл 2007 20:06 | |
Сообщения:3
|
Спасибо за совет. Вначале было тоже подозрение, что надо идти таким путем, но взяли сомнения. Теперь так и попытаюсь.
|
02 июл 2007 20:10 | |
Сообщения:3874
|
Помоему я ошибся, вам наверное понадобится CIFS протокол из той же библиотеки :) Короче, для вас серавно будет это "прозрачно" (какой из протокола использовать - поидее выберет сама библиотека), думаю вам проcто нужно попытася обратится к виндовой шаре - \\workstation\share ..
|
04 июл 2007 20:48 | |
Сообщения:1165
|
попробую предложить альтернативное решение:
если вы можете предварительно положить файл в директорию "по заказу" то можно использовать ClassLoader public static ClassLoader getClassLoader(Class currentClass) { ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); if (contextClassLoader == null) { contextClassLoader = currentClass.getClassLoader(); } return contextClassLoader; } public static URL getResource(String resourceName) { return getResource(resourceName, ClassLoaderUtils.class); } public static URL getResource(String resourceName, Class currentClass) { return getClassLoader(currentClass).getResource(resourceName); } ------------------------- URL url = ClassLoaderUtils.getResource("com/pnx/underwrite/command/" + serviceId + ".xml"); return url.getFile();
эл:
Спасибо за совет. Вначале было тоже подозрение, что надо идти таким путем, но взяли сомнения. Теперь так и попытаюсь.
The meaning of life, universe and everything is 42! |