Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 4

System.load

15.02.2012, 17:55. Показов 3666. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс расположенный в jar(е) - используется как библиотека. Есть статический метод который грузит командой System.load файл лежащий в этом же jar(е).
Путь к файлу получаю:

blabla.class.getResource("blabla").getPa th();

получаю путь что-то типа file:/home/touch/.../../../blabla.jar!/../../blabla.so

Через дебаг режим пробовал отрезать "file:", "!", короче, не хочет грузить с jar(a). Как правильно сделать?

Буду благодарен за любую помощь)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2012, 17:55
Ответы с готовыми решениями:

Can't load library
Здравствуйте, я новичек в программировании, скажите что я не так делаю, пытаюсь написать программу на java с интерфейсом на javafx 2.2,...

ActionPerformed и WebView.getEngine().load();
Всем добра, помогите возможно с самым тупым вопросом, я добавляю слушателя ActionListener к кнопке, в методе actionPerformed слушателя я...

Ошибка:Error: Could not find or load main class simpleFrame
import java.awt.EventQueue; import javax.swing.JFrame; public class simpleFrame { public static void main(String args){ ...

3
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
15.02.2012, 21:30
не понимаю зачем вам к нему путь? это же JNI загрузил либку создал класс на её основе и вызывай методы.
Java
1
2
3
4
5
6
7
8
9
10
class InstanceMethodCall {
     private native void nativeMethod();
     public static void main(String args[]) {
         InstanceMethodCall imc = new InstanceMethodCall();
         imc.nativeMethod();
     }
     static {
         System.loadLibrary("InstanceMethodCall");
     }
 }
0
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 4
16.02.2012, 12:19  [ТС]
Как с JNI работать я разобрался. Не могу загрузить саму либку, если использовать System.loadlibrary() то нужно предварительно указать место хранения lib файлов. Хотелось бы обойтись без этого и использовать Systen.load() где нужно полный путь прописать к файлу. Вот и искал методы решения...
Но так понял что не получиться, прийдется System.loadlibrary() использовать...

Просто когда писалась библиотека, либки загружались не из jar файлов, и по этому проблем не было, когда это завернулось в jar получилась неувязка)
Ну лан спс, сделаю System.loadlibrary().

Добавлено через 16 минут
Нашел инфу, что нельзя из jar(a) загрузить dll-ку, выход из ситуации - копирование из jar(a), затем System.load() и затем удаление временной копии... есть варианты лучше, буду признателен)
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
16.02.2012, 13:36
System.load и System.loadLibrary это
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
synchronized void load0(Class fromClass, String filename) {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.checkLink(filename);
    }
    if (!(new File(filename).isAbsolute())) {
        throw new UnsatisfiedLinkError(
            "Expecting an absolute path of the library: " + filename);
    }
    ClassLoader.loadLibrary(fromClass, filename, true);
    }
    
    synchronized void loadLibrary0(Class fromClass, String libname) {
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
            security.checkLink(libname);
        }
        if (libname.indexOf((int)File.separatorChar) != -1) {
            throw new UnsatisfiedLinkError(
        "Directory separator should not appear in library name: " + libname);
        }
        ClassLoader.loadLibrary(fromClass, libname, false);
        }
и оба они в конце концов вызывают
Java
1
ClassLoader.loadLibrary(fromClass, filename, true);
а там идёт работа только с File, использвать какой либо InputStream не получится, так как всё завершается на нативном вызове
Java
1
native void load(String name);
поэтому распаковка в tmp единственный вариант.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2012, 13:36
Помогаю со студенческими работами здесь

Разница между System.exit(0) и setDefaultCloseOperation
Здравствуйте. Существуют два кода: jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE); и addWindowListener(new...

Может ли апплет проверять свои полномочия, обращаясь к System, к SecurityManager или как-то ещё? И почему?
Может ли апплет проверять свои полномочия (коннектиться куда-то, записывать данные куда-то и т.п.), обращаясь к System, к SecurityManager...

native method: System.load("F:\JavaativeMethod\classes\Example.dl l" );
Cоздаю некий dll посредством l -W3 F:JavaativeMethodclassesExample.cpp -LD и тот самый dll запускаю из Java Native методом...

Существует ли аналог System.IEquatable<T> и System.Collections.Generic.IEqualityComparer<T> из C# в Java?
Существует ли аналог System.IEquatable&lt;T&gt; и System.Collections.Generic.IEqualityComparer&lt;T&gt; из C# в Java?

Кто управляет открытием/закрытием System.in/System.out
System.in/System.out это просто InputStream/PrintStream То бишь это потоки. А с потоками же надо аккуратно - их надо открывать,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru