2009-11-18 2 views
0

Я пытаюсь открыть файл справки из моего приложения java. Я могу сделать это, используя строку:выпуск htm-файлов с внутренней ссылкой из командной строки

Runtime.getRuntime().exec(new String[] {strPath, strUrl}); 

где strPath это путь к IEXPLORE.EXE и strURL мой путь файл справки. Однако, когда я передаю файл справки с внутренней ссылкой, содержащей пробел (например, «c: ... \ helpfile.htm # some section»), страница откроется в IE, но не перейдет в соответствующий раздел , Если я заменил пробел на «% 20», произойдет то же самое.

Используя командную строку в XP, возникает еще более странная вещь. Когда я бегу:

c:\> path\to\iexplore.exe "path\to\helpfile.htm#some section" 

я получаю такое же поведение, как и выше, но если я типа:

c:\> path\to\iexplore.exe "path\to\helpfile.htm#some%20section" 

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

Ввод пути к файлу справки с пробелом в нем в адресной строке IE успешно направляет меня в правильный раздел. Точно так же кажется, что Firefox не страдает от этих недостатков.

Я не верю, что могу многое сделать для изменения макета файлов htm или имен внутренних ссылок. Кто-нибудь столкнулся с этой проблемой и есть ли какие-либо предложения о том, как ее преодолеть? Спасибо!

ответ

0

Используйте Desktop класс, например:

Desktop.getDesktop().browse(new Uri(path)); 

Помните, что некоторые люди (включая меня) использовать Firefox вместо IE.

+0

Это будет запускать FF вместо IE, если это браузер по умолчанию, но, похоже, полностью игнорирует фрагмент «# some% 20section» в конце URI. Как я могу заставить браузер перейти к полному пути, а не только к файлу htm? –

0

Вы пытались использовать файл url?

\path\to\iexplore.exe file:///path/to/your/helpfile.html#some%20section 
+0

Пробовал, это все равно не-го. Файл html появится в IE, и адрес в адресной строке будет правильным, но он не перейдет в указанный раздел, и если я нажму кнопку «пойти», он все равно не пойдет в правильную секцию. Единственный способ правильной навигации - это заменить «% 20» «some% 20section» (который появляется в адресной строке, независимо от того, использую ли я «# some section» или «# some% 20section» в командной строке) с фактическим пространством. –

+0

Какую версию IE вы используете? Я начинаю смутно вспоминать навигацию к якорям из командной строки, разбитой в IE7 (известная ошибка) ... –

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