Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> bridge, Вот и настал момент использования 
:(
    Опции темы
Platon
Дата 9.2.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Здравствуйте, уважаемые.

Когда встал вопрос с запуском файла с помощью привязанной к нему программы, это не составило труда:
Код

cmd /c "JavaBook.pdf"


Логично, что этот вариант работает тока на Win NT, на 9x другая история, а про Linux вообще никто(беглым взглядом) не знает.
1. Если здраво разобраться в текущем примере, то тут можно все варианты засунуть в 1 код, ибо не так уж и много занимаетнаписать несколько разных команд.

2. Сколько таких ОСозависимых операций встречается в практике?

3. И если реализация не умещается в 3-х строчках, как вы делаете?
первое что приходит в голову:

Есть главный jarник MyProgram.jar, в котором содержатся истинно платформонезависимые операции, в classpath этого джара прописан пать к OSDependend.jar

и вот пример:

MyProgram.jar
Код

public class MainClass {
    public static void main(String[] args) {
                new FileExecuter().execute("1 1.pdf");
    }
}


OSDependend.jar для Win NT
Код

public class FileExecuter {
    public void execute(String filePath) {
    try {
            Runtime.getRuntime().exec("cmd /c \"1 1.pdf\"");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


OSDependend.jar для Win 9x
Код

public class FileExecuter {
    public void execute(String filePath) {
    try {
            Runtime.getRuntime().exec("start.exe \"1 1.pdf\"");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Более того, мы вообще можем сделать эти методы статическими.

Вот собственно и всё. И получается мы можем обойтись без Моста.

Прошу поправить меня и переучить.
PM MAIL ICQ   Вверх
dorogoyIV
Дата 9.2.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



Цитата(Platon @  9.2.2008,  17:19 Найти цитируемый пост)
Есть главный jarник MyProgram.jar, в котором содержатся истинно платформонезависимые операции

Platon, не пойму, чего ты хочешь???
все равно ты не сделал прогу, которая будет работать без джава.
PM MAIL   Вверх
Mayk
Дата 9.2.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



А тут нужен bridge? Имхо для этой цели тупо можно сделать какой-нить  properties файл типа
Код

winnt=cmd /c %s
win95=start %s
linux=xpdf %s


и потом делать
Код

String commandLine = props.get( currentOs() );
if( commandLine == null ) throw new RuntimeError( "write handler for your os %s in osdep.properties", currentOs() );
Runtime.getRuntime().exec(  String.format( commandLine, filename ) );

никаких куч .jar'ов.

Цитата(Platon @  9.2.2008,  21:19 Найти цитируемый пост)
а про Linux вообще никто(беглым взглядом) не знает.

в линух нет единой привязки типа файла к приложению.

Это сообщение отредактировал(а) Mayk - 9.2.2008, 18:23


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Platon
Дата 9.2.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Цитата(dorogoyIV @  9.2.2008,  19:03 Найти цитируемый пост)
которая будет работать без джава. 

А зачем мне без джава?

Я о специфических функциях операционной системы, к примеру: пример, который я привел, извлечение иконки привязанной к файлам определенного типа, открытие браузера по умолчанию и прочее.

Добавлено через 5 минут
Mayk, ваш вариант подпадает под мое утверждение ^_^

Цитата(Platon @  9.2.2008,  18:19 Найти цитируемый пост)
Если здраво разобраться в текущем примере, то тут можно все варианты засунуть в 1 код, ибо не так уж и много занимаетнаписать несколько разных команд.


Но, давайте абстрагируемся от простоты этого примера, и представим, что надо реализовать более сложную задачу, даже не знаю какую ^_^
тогда от нескольких жариков не отвертеться.
PM MAIL ICQ   Вверх
Platon
Дата 18.2.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Вот к примеру, в данный момент не существует единого подхода к извлечению иконок типа файла.
Проблема тут

Ясно дело что придется шаманить с разными версиями кода и подключать их.
PM MAIL ICQ   Вверх
w1nd
Дата 18.2.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Platon, в последнем случае я бы решал вопрос с помощью jni.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1026 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.