29 июн 2007 15:01 | |
Сообщения:3 | Помогите, пожалуйста, новичку :( . Программа работает под линуксом. Необходимо читать файл с виндовой машины. Как это реализовать? (Если подскажите еще, где можно почитать, будет просто замечательно). |
29 июн 2007 17:19 | |
Сообщения:3874 | Немного не понятен вопрос: ваша программа запускается И под Линуксом И под виндой? |
29 июн 2007 17:40 | |
Сообщения:3 | gesser, спасибо что откликнулись. Ваши рекомендации на этом сайте многим помогли. А ситуация такая: была программа, которая стояла на виндовом сервере, и парсила логи другого виндового сервера (обычный FileInputStream("\\server\log\1.log"). Теперь сделали сервер на линуксе и перенесли туда эту прогу. Поскольку она перестала работать - попросили переделать. Брать файл по ftp не хотят. Но я в Java разбираюсь слабо - может подскажите как это организовать можно. Чисто пару идей подкиньте :)... Будем сильно признательны |
29 июн 2007 18:44 | |
Сообщения:3874 | Есть одна идея, но про тонкости реализации не скажу (не пробовал, а оттестить негде): Возможно стоит зашарить папку на виндовом сервере и стучаться туда по SMB с линуксовой машины. Думаю вам может понадобится http://jcifs.samba.org/. |
02 июл 2007 16:06 | |
Сообщения:3 | Спасибо за совет. Вначале было тоже подозрение, что надо идти таким путем, но взяли сомнения. Теперь так и попытаюсь. |
02 июл 2007 16:10 | |
Сообщения:3874 | Помоему я ошибся, вам наверное понадобится CIFS протокол из той же библиотеки :) Короче, для вас серавно будет это "прозрачно" (какой из протокола использовать - поидее выберет сама библиотека), думаю вам проcто нужно попытася обратится к виндовой шаре - \\workstation\share .. |
04 июл 2007 16: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! |