powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как указать путь к внешнему jar'у?
25 сообщений из 29, страница 1 из 2
как указать путь к внешнему jar'у?
    #33718912
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
в eclipse создан plugin, как продукт из-под eclipse - работает..
после export'a запускается как самостоятельное приложение, но например к ораклу не коннектится, как установить связь с внешними jar'ами? class.forname("..") не находит нужный jar (class)
пытался указать путь в запускном батнике, в коде через system.property - не находит..
подскажите как правильно pls

и как работают build properties в манифесте? никаких "связей" будто не переносится..
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719458
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
librarypath и classpath как указать?
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719470
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719761
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
в запускном батнике есть -classpath D:\..ojdbc14.jar, в котором есть oracle.jdbc.OracleDriver
когда программа доходит до места Class.forName("oracle.jdbc.OracleDriver") в System.getProperty("java.class.path") присутствует указанный jar, но поднятие класса вылетает в exeption java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
почему? чего не хватает?
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719822
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проект -> свойтсва

третий сверху пунк ("путь компановки java")->
закладка "библиотеки"->
"добавить внешние jar"

вроде так если я правильно понял
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719828
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сори совсем не то
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33719858
a78в запускном батнике есть -classpath D:\..ojdbc14.jar, в котором есть oracle.jdbc.OracleDriver
когда программа доходит до места Class.forName("oracle.jdbc.OracleDriver") в System.getProperty("java.class.path") присутствует указанный jar, но поднятие класса вылетает в exeption java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
почему? чего не хватает?
Всего хватает. Ищите ошибки типа "c вместо с" и т.п.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33720058
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
да нет ошибок, и в startup.jar org.eclipse.core.launcher.Main она находит..
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33720458
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я раньше тоже сталкивался с етими граблями. решение может быть например такое:
когда вы выполняете свой проект, то в окне "Console" (куда эклипса выкидывает сообщения) появится путь ко всем библиотекам. вот вы его и используйте.
работает как часы.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33721524
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
2kadet как использовать? под eclips'ой всё работает и путь правильный

неужели никто не знает? а с classloader'ом кто работал?
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33721684
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у каждаго эклипсплагина свой classpath и jar'ы и пишутся они в его опесании. (plugin.xml что ли) ну или в графич.плагин редакторе посмотри как добавить к
плагину jar'ы.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33722812
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a782kadet как использовать? под eclips'ой всё работает и путь правильный

неужели никто не знает? а с classloader'ом кто работал?
пардон.

вот смотри, например в проекте ты используешь какие то пакеты. Естественно ты знаешь где они расположенны (Если нет - то,например, жми Projects/properties в новом окне выбераешь с лево позицию "java build path" и с правой стороны в окне "Libraries"). Далее, естественно, тебе конечно же надо экспортировать сам проект в jar-архив, например с именем "ВновьСгенерированный Архив.jar" .Для этого жмешь правой кнопкой мыши на проекте (в окне Package Exploer) и выбираешь опцию "Export", где тебе будет предложенно новое окно, в котором ты выбираешь "jar file". В следующих окнах надо будет уточнить некоторые потребности (например имя архива) и в итоге ты получишь свой архив.

После всего нужно в командной строке написать простую команду (либо оформить все ето в скрипт)

Код: plaintext
1.
java -classpath "D:\MOTORA.NET\MotoraLib\commons-net-1.4.1\commons-net-1.4.1.jar;D:\MOTORA.NET\MotoraLib\jakarta-oro-2.0.8\jakarta-oro-2.0.8\jakarta-oro-2.0.8.jar;D:\MOTORA.NET\MotoraLib\jakarta-regexp-1.4.jar;D:\MOTORA.NET\MotoraLib\jdom-1.0\jdom-1.0\build\jdom.jar;D:\MOTORA.NET\MotoraLib\Xerces-J-bin.2.5.0\xerces-2_5_0\xercesImpl.jar;D:\MOTORA.NET\MotoraLib\ВновьСгенерированный Архив.jar" ВновьСгенерированный Архив.МойВыполняющийсяКласс

здесь ты можешь видеть, что после -classpath в ковычках прописанны все необходимые библиотеки (для виндовз), а так же в самом конце указывается запускающийся класс - ВновьСгенерированный Архив.МойВыполняющийсяКласс
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33723403
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
kadet спасибо, но java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver хотя путь к этому драйверу в -classpath указан, вот прям как ты и писал..
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33723485
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обрати внимание на разделители между jar-архивами:
для виндовоза это ";", для Linux - ":"
желательно чтоб вся строка с путями была закрыта в кaвычки(для виндовоза по крайней мере).
на всякий случай убедись, что в путях нет пробелов.
если есть возможность, то просмотри каждый архив и убедись, что нужный класс действительно там сидит.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33730008
PWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PWP
Гость
Можно присоседиться к теме ?
Как подключить jar в динамике при исполнении приложения ? (не через
classpath )
Пробовал через :
String class_path1=System.getProperty("java.class.path");
String class_path="D:/new.jar";
String xx=System.setProperty("java.class.path",class_path+class_path1);
Все в систему заносит а искать в новом (new.jar) ничего не хочет.
Нужно что-то еще (типа обновить classpath) или такая схема вообще не проходит ?
Это на тему сокращения об'емов для запуска приложения на клиенте !
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33731265
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PWPМожно присоседиться к теме ?
Как подключить jar в динамике при исполнении приложения ? (не через
classpath )

Например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
JarInputStream jis =  new  JarInputStream( new  FileInputStream(
		"c:/temp/temp.jar"));
JarEntry entry = jis.getNextJarEntry();
 while  (entry !=  null ) {
	String name = entry.getName();
	 if  (entry.getName().endsWith(".class")) {
		name = name.substring( 0 , name.length() -  6 );
		name = name.replace('/', '.');
		System.out.print(name);
		 try  {
			 Class .forName(name);
			System.out.println("\t- loaded");
		}  catch  (ClassNotFoundException e) {
			System.out.println("\t- not loaded");
		}
	}
	entry = jis.getNextJarEntry();
}
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33731271
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PWPЭто на тему сокращения об'емов для запуска приложения на клиенте !
Так же советую посмотреть класс JarURLConnection.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33734851
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
AciD_v а что делать, если на все классы из jar'а он пишет "not loaded"? почему блин не грузит?
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33735508
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a78AciD_v а что делать, если на все классы из jar'а он пишет "not loaded"? почему блин не грузит?
Исправил. Вот работающий вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 package  com.comarch.telco.test;

 import  java.io.*;
 import  java.net.*;
 import  java.util.jar.*;

 public   class  MyJarLoader {

   public   static   void  main(String[] args)  throws  FileNotFoundException, IOException {
    String jarName = "c:/temp/temp.jar"; // заменить на свой

    URLClassLoader urlLoader = getURLClassLoader( new  URL("file",  null , jarName));

    JarInputStream jis =  new  JarInputStream( new  FileInputStream(jarName));
    JarEntry entry = jis.getNextJarEntry();
     int  loadedCount =  0 , totalCount =  0 ;

     while  (entry !=  null ) {
      String name = entry.getName();
       if  (name.endsWith(".class")) {
        totalCount++;
        name = name.substring( 0 , name.length() -  6 );
        name = name.replace('/', '.');
        System.out.print("> " + name);

         try  {
          urlLoader.loadClass(name);
          System.out.println("\t- loaded");
          loadedCount++;
        }  catch  (Throwable e) {
          System.out.println("\t- not loaded");
          System.out.println("\t " + e.getClass().getName() + ": " + e.getMessage());
        }

      }
      entry = jis.getNextJarEntry();
    }

    System.out.println("\n---------------------");
    System.out.println("Summary:"); 
    System.out.println("\tLoaded:\t" + loadedCount); 
    System.out.println("\tFailed:\t" + (totalCount - loadedCount)); 
    System.out.println("\tTotal:\t" + totalCount); 
  }
  
   private   static  URLClassLoader getURLClassLoader(URL jarURL) {
     return   new  URLClassLoader( new  URL[]{jarURL});
  }
}
Сейчас класс может не загрузиться, если он использует классы из других (не загруженных) jar'ов. Т.е. надо сразу все нужные архивы передавать в new URLClassLoader(new URL[]{allNeededJarURLs})

З.Ы. Правда, еще не разобрался почему из одних архивов классы загружаються первым способом (с помощью Class.forName(name) ), а из других нет. Например, у меня с dom4j.jar - первый способ работает, а с hibernate.jar - лажа.
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33737437
PWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PWP
Гость
AciD_v[quot a78]AciD_v а что делать, если на все классы из jar'а он пишет "not loaded"? почему блин не грузит?
Исправил. Вот работающий вариант:
[src java]package com.comarch.telco.test;

Спасибо за подключение к вопросу. Но он немного в другой плоскости.
Не хотелось бы тупо грузить все классы или искать все зависимые начиная с
первого. Хотелось бы ,чтобы система сама подгружала их как это делается из
classpath.
Например нужно :
1)через Class.forName(name); указать какой либо драйвер
из внешней библиотеки или
2)то что нужно по import (хотя наверное import-то
и можно смоделировать предложенным способом хотя непонятно как это
сделать на автомате и практически).
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33737447
PWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PWP
Гость
AciD_v[quot a78]AciD_v а что делать, если на все классы из jar'а он пишет "not loaded"? почему блин не грузит?
Исправил. Вот работающий вариант:
[src java]package com.comarch.telco.test;

Спасибо за подключение к вопросу. Но он немного в другой плоскости.
Не хотелось бы тупо грузить все классы или искать все зависимые начиная с
первого. Хотелось бы ,чтобы система сама подгружала их как это делается из
classpath.
Например нужно :
1)через Class.forName(name); указать какой либо драйвер
из внешней библиотеки или
2)то что нужно по import (хотя наверное import-то
и можно смоделировать предложенным способом хотя непонятно как это
сделать на автомате и практически).
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33737586
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
AciD_v спасибо огромное за участие!!

только плиз объясни немножко, как пользоваться грамотно инструментом этим :)

загрузил твой пример все классы из моего jar'а, однако -
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
т.е. все классы из jdbc-драйвера он загрузил, а пользоваться не хочет..(не может)
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33737635
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
проблема в том что когда я приложение запускаю под эклипсой - мне достаточно добавить этот jar в buildpath чтобы class.forname работал.. а когда я свой продукт экспортирую - связь с jar'ом теряется и class.forname его не находит, как я ни пытался его ему подсунуть..
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33738027
PWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PWP
Гость
a78проблема в том что когда я приложение запускаю под эклипсой - мне достаточно добавить этот jar в buildpath чтобы class.forname работал.. а когда я свой продукт экспортирую - связь с jar'ом теряется и class.forname его не находит, как я ни пытался его ему подсунуть..

C внешним jar работает другой вид class.forname :
String jarName = "c:/JLIB/postgresql-8.1-404.jdbc3.jar";
URLClassLoader urlLoader = getURLClassLoader(new URL("file", null, jarName));
String dr_name = "org.postgresql.Driver";
//
Class.forName(dr_name,true,urlLoader);
класс находится но connect не идет
//
a вот такой class.forname :
Class.forName(dr_name);
класс не находит и далее не идет connection
...
Рейтинг: 0 / 0
как указать путь к внешнему jar'у?
    #33738070
a78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a78
Гость
PWP
Class.forName(dr_name,true,urlLoader);
класс находится но connect не идет

аналогично, сласс поднимается а менеджер его не видит
java.sql.SQLException: No suitable driver
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / как указать путь к внешнему jar'у?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]