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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не видятся аргументы внешней программы 
:(
    Опции темы
infarch
Дата 13.9.2013, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

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



Мне нужно открыть файл используя дефолтный системный обработчик. Про desktop.open(file) я знаю, но на одной машине под виндой он почему то не работает. И я решил его заменить на

Код

new ProcessBuilder("explorer.exe", "\""+pathName+"\"").start();


Но почему то аргументы ком. строки не видятся. Открывается эксплорер и все. Когда же я из консоли выполняю нечто вроде explorer.exe settings.ini то запускается блокнот с этим файлом. В чем может быть причина?
PM MAIL   Вверх
Samotnik
Дата 13.9.2013, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



аргументы командной строки - это args[] в методе main. 
Хде ани у тебя? 
PM MAIL   Вверх
infarch
Дата 13.9.2013, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

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



Я понимаю желание показаться остроумным, но думаю что вопрос сформулирован достаточно четко. Можете сказать что нибудь по сути вопроса?
PM MAIL   Вверх
Samotnik
Дата 13.9.2013, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Код

new ProcessBuilder("cmd", "/c", "\""+pathName+"\"").start();

как-то так
PM MAIL   Вверх
infarch
Дата 13.9.2013, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

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



Уже пробовал. Результат аналогичный: просто открывается консоль. Ну а в консоли если набрать то, само собой, все работает.
PM MAIL   Вверх
Samotnik
Дата 13.9.2013, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



infarch, Какая ОС? Пример pathName можно? Есть проблемы, если путь и/или название с пробелами.
PM MAIL   Вверх
infarch
Дата 13.9.2013, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

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



Ось виндовс 7 профешен. pathname просто любой путь к файлу, уже 100 раз проверено, правильный. Например "d:\work\projects\java\live\states.docx". И с пробелами бывает, и без.
PM MAIL   Вверх
Samotnik
Дата 14.9.2013, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



infarch, 
\ В Java должны быть как \\ 
У меня мой способ работает уже давно, проверенно электроникой smile 
Если у тебя не работает, просмотри внимательно пути к файлам, возможно в них проблема.
PM MAIL   Вверх
infarch
Дата 14.9.2013, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

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



Двойной бекслеш используется чтоб заэкранировать самого себя, если пишем string = "aa\\bb" и выводим это в консоль то видим "aa\bb". И не только в джаве. Но это имеет смысл только если я путь задаю как текстовую константу в коде. А я его получаю из файловой системы чтением директории. Вы же не хотите сказать что, получив имя файла как строку, я должен заменить в ней бекслеши на двойные? Ну и учитывая что пути мне дает сама джава, они скорее всего правильные. По крайней мере file.exists возвращает true.
PM MAIL   Вверх
Samotnik
Дата 14.9.2013, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



infarch, Что я могу сказать, больше гадать не буду. Мало полезной информации, одна философия. 
Этот способ рабочий:
Код

public static void main(String[] args) throws IOException, ParseException {
        new ProcessBuilder("cmd", "/c", "e:\\video\\serials\\big ban\\3 season\\EasternOriented.doc").start();
}

 если он не работает, ищи где у тебя ошибка.

Это сообщение отредактировал(а) Samotnik - 14.9.2013, 14:04
PM MAIL   Вверх
Magistrus
Дата 16.9.2013, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Жив
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 14.6.2006
Где: г. Одесса

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



Попробуй вот так.

Код

     String[] command = {"CMD", "/C", "dir"};
     ProcessBuilder probuilder = new ProcessBuilder( command );

     //You can set up your work directory
     probuilder.directory(new File("c:\\xyzwsdemo"));
        
     Process process = probuilder.start();


Это сообщение отредактировал(а) Magistrus - 16.9.2013, 09:28
--------------------
~ вот такая вот загагулина ~ 
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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