Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Запуск приложения из текущей папки.  (Прочитано 8934 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gubtor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #15 : 10 Февраля 2011, 16:44:12 »
Gubtor, вероятно, средствами launcher'а невозможно получить путь до каталога, в котором он находится.
Однако, если имеется несколько заранее известных вариантов, или же этот путь можно как-то рассчитать, то становится возможным
3) сделать финт ушами и запихать туда небольшой скрипт, выполняемый через "bash -c"
который будет выбирать 1 из нескольких вариантов пути.

Продолжу мысль - для чего мне нужен launcher.

Дело в том, что файл Tratata.jar на вход принимает путь к файлу, который я задумал бросать непосредственно на его иконку в Nautilus (старый добрый Drag&Drop). Но, поскольку это архив, при бросании на Tratata.jar любого файла, Tratata.jar не запускался. Для этого я создал launcher, в нем прописал путь к Tratata.jar и файлы бросал уже непосредственно на launcher, который запускал Tratata.jar и передавал ему путь брошенного файла.

При написании скриптов я очень сомневаюсь что я тогда смогу Tratata.jar передать при запуске путь брошеного на него (на launcher) файла.

Собственно, неужели нет других вариантов?
How does one patch KDE2 under FreeBSD?

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #16 : 10 Февраля 2011, 17:04:41 »
>При написании скриптов я очень сомневаюсь что я тогда смогу Tratata.jar передать при запуске путь брошеного на него (на launcher) файла.

$1 же.
Пример#!/bin/bash
notify-send "$1"

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #17 : 10 Февраля 2011, 17:09:10 »
ТС, Вы classpath искали ?
Специально для Вас, если Вас забанили в Гугле.
http://yandex.ru/yandsearch?text=classpath&lr=2
http://j2w.blogspot.com/2008/01/classpath.html

Оффлайн Gubtor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #18 : 10 Февраля 2011, 17:15:47 »
>При написании скриптов я очень сомневаюсь что я тогда смогу Tratata.jar передать при запуске путь брошеного на него (на launcher) файла.

$1 же.
Пример#!/bin/bash
notify-send "$1"

Про $1 не знал, спасибо.
Тем не менее, даже если я напишу скрипт, как его можно будет "вшить" в launcher? Ведь бросать файлы на скрипт я не смогу - Drag&Drop работает только на launcher.
How does one patch KDE2 under FreeBSD?

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #19 : 10 Февраля 2011, 17:23:21 »
Что за ланчер-то, не пойму?Ярлык на столе?
Скрипт в ланчере в качестве команды, всё передаётся при Drag&Drop - сделайте с указанным примером и сами убедитесь.

Оффлайн Gubtor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #20 : 11 Февраля 2011, 13:17:48 »
(Нажмите, чтобы показать/скрыть)

Друзья, неужели нет никакого способа настроить launcher для старта приложения по относительному пути?

Если непонятно что я делаю, вот видео:


Коментарии к видео:
1) Создаю launcher для Tratata.jar (указывая полный путь) и перемещаю его в папку с Tratata.jar
2) Запускаю. Появляется GUI Tratata.jar. На форме кроме слова "Args" больше ничего нет, так как на launcher ничего Drag&Drop'ом не бросалось.
3) Теперь бросаю на launcher файл. Запускается Tratata.jar и кроме "Args" мы видим путь брошенного файла. Все в порядке.
4) Теперь изменяю в launchere полный путь файла (/home/gubtor/workspace/Tratata.jar) на относительный (./Tratata.jar)
5) Запускаю. Ничего не запускается.

Собственно, что нужно делать в пункте 4) чтоб приложение запустилось (установив при этом относительный путь)?
How does one patch KDE2 under FreeBSD?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #21 : 11 Февраля 2011, 14:02:36 »
4) Теперь изменяю в launchere полный путь файла (/home/gubtor/workspace/Tratata.jar) на относительный (./Tratata.jar)
5) Запускаю. Ничего не запускается.
Правильно, так и должно быть. Для этого и существует classpath.

Оффлайн Gubtor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #22 : 11 Февраля 2011, 17:49:28 »
4) Теперь изменяю в launchere полный путь файла (/home/gubtor/workspace/Tratata.jar) на относительный (./Tratata.jar)
5) Запускаю. Ничего не запускается.
Правильно, так и должно быть. Для этого и существует classpath.

У меня складывается впечатление, что мы с Вами говорим про разные classpath'ы.
Вы имеете в виду Java Classpath? Если да, то что Вы предлагаете для решения проблемы?
How does one patch KDE2 under FreeBSD?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #23 : 14 Февраля 2011, 08:38:47 »
У меня складывается впечатление, что мы с Вами говорим про разные classpath'ы.
Вы имеете в виду Java Classpath?
Именно про java и его сlasspath я и говорю.
Расскажу банальности, но без этого ничего не понять.
Он переводится как путь к классам.
Java для защиты информации от подмены классов левыми имеет абсолютный доменный путь к классам.
Для запуска локально нужно полностью повторять эти пути в своих папках, а classpath играет роль отправной точки.
Еще, для облегчения и группировки классов есть такое понятие пакеты (jar).
Не знаю, то ли Вы хотели услышать, но подробности нужно искать на спецфорумах по Java.


Оффлайн nehalem

  • Новичок
  • *
  • Сообщений: 44
  • NeHaLeM
    • Просмотр профиля
Re: Запуск приложения из текущей папки.
« Ответ #24 : 08 Мая 2011, 15:14:48 »
вот что пишет:

Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.10)
   at java.awt.EventQueue.invokeLater(libgcj.so.10)
   at javax.swing.SwingUtilities.invokeLater(libgcj.so.10)
   at org.jdesktop.application.Application.launch(Application.java:181)
   at nl.invisible.keygen.gui.MainApp.main(MainApp.java:42)
Caused by: java.lang.UnsatisfiedLinkError: libgtkpeer: libgtkpeer.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
   at java.lang.Runtime._load(libgcj.so.10)
   at java.lang.Runtime.loadLibrary(libgcj.so.10)
   at java.lang.System.loadLibrary(libgcj.so.10)
   at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(libgcj.so.10)
   at java.lang.Class.initializeClass(libgcj.so.10)
   at java.lang.Class.forName(libgcj.so.10)
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.10)
   ...4 more

 

Страница сгенерирована за 0.393 секунд. Запросов: 23.