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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сборка программы Ant`ом.. Программа не видет библиотеки. 
:(
    Опции темы
Valor
  Дата 21.5.2009, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток.

Прошу помочь с проблеммой над которой бьюсь уже второй день.

Есть проект пишится он в Eclipse, сборка соответственно Ant, для сборки написал build.xml следующего содержания.

Код

<?xml version="1.0" encoding="UTF-8"?>

<project name="jLogistic" default="init" basedir=".">
    <description>
            no description
    </description>
    
    <property name="project_name" value="jLogistic"/>
    <property name="src" location="src"/>
    <property name="lib" location="lib"/>
    <property name="dis" location="distr"/>
    <property name="conf" location="configs"/>
    <property name="build" location="bin"/>

    <path id="classpath"> 
        <fileset dir="${lib}"> 
            <include name="*.jar" /> 
        </fileset>        
    </path> 

    <target name="init">
       <mkdir dir="${dis}"/>
     <mkdir dir="${build}"/>
    </target>

    
    <target name="compile" depends="init">
     <echo>Compile started!</echo>
     <javac destdir="${build}" 
               optimize="on" 
               debug="on" 
               nowarn="off"
            srcdir="${src}">
         <classpath refid="classpath"/> 
     </javac>
    </target>
    
    <target name="jar" depends="compile" >
        <echo>Build JAR started!</echo>
     <jar destfile="${dis}/${project_name}.jar" index="true"> 
            <fileset dir="${build}"/>
            <manifest> 
                <attribute name="Main-Class" value="ru.olimpvl.jlogistic.gui.Main"/> 
                <attribute name="Class-Path" value="lib/jcalendar-1.3.2.jar lib/mysql-connector-java-5.1.6-bin.jar lib/poi-3.2-FINAL-20081019.jar"/>           
            </manifest>  
     </jar> 
    </target>
    
    <target name="dist_buld" depends="jar">
        <copydir dest="${dis}\configs" src="${conf}"/>
        <copydir dest="${dis}\lib" src="${lib}"/>
    </target>

    
    <target name="clean">
        <delete>
            <fileset dir="${dis}">
             <include name="*.jar"/>
            </fileset>
        </delete>
        <delete dir="${build}"/>
    </target>

</project>


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

Структура проекта.
user posted image

К примеру в UI программы используется компонент JDataChooser из сторонней библиотеки.. при запуске программы вываливает следующий экзепшен.

Код

D:\Mydoc\eclipse_projects\jLogistic\distr>java -jar jLogistic.jar 
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/toedt 
er/calendar/JDateChooser 
at ru.olimpvl.jlogistic.gui.Main$3.actionPerformed(Main.java:599) 
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
at javax.swing.AbstractButton.doClick(Unknown Source) 
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) 
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown 
Source)


перепробовал кучу вариантов.. ничего не получается..

PS: OS WinXP or Debian 5.0
Apache Ant 1.7.0
Eclipse 3.4.2
PM MAIL   Вверх
_and
Дата 21.5.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-developer
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 6.8.2004
Где: Новокузнецк

Репутация: 2
Всего: 4



у тебя скрипт отрабатывает на ура, 
проблема в строке запуска приложения - запускай примерно так
Код

java -cp < пути к сторонним либам разделенные ; > -jar jLogistic.jar 

PM MAIL ICQ Jabber   Вверх
Valor
Дата 21.5.2009, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пробовал такой вариант запуска.. не проходит, да и на костыль смахивает сильно...  Возьмем к примеру дефолтный проект NetBeans структура проекта там такая же как и у меня в Eclipse, но класпасы работают как надо... и без доп костылей в батниках.. Ктомуж я собираюсь позже пропустить Jar через врапер для генерации .exe файла...

PM MAIL   Вверх
_and
Дата 21.5.2009, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-developer
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 6.8.2004
Где: Новокузнецк

Репутация: 2
Всего: 4



это не костыль так делать надо объязательно откуда java знает какие библиотеки используешь ты, для этого и существует параметр -cp или -classpath
кинь строку которой пробовал запускать посмотрим че там не так 

PM MAIL ICQ Jabber   Вверх
Valor
Дата 21.5.2009, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Для того чтоб Java знала где искать библиотеки пишетсо следующее

Код

<manifest> 
                <attribute name="Main-Class" value="ru.olimpvl.jlogistic.gui.Main"/> 
                <attribute name="Class-Path" value="lib/jcalendar-1.3.2.jar lib/mysql-connector-java-5.1.6-bin.jar lib/poi-3.2-FINAL-20081019.jar"/>           
            </manifest>  


Атрибут Class-Path должен прописаться в манифест, он сопстно и прописывается..  но походу я не правельно задаю толи путь толи хз... 

Вот это я и прошу посмотреть... может я что пропустил...  

А передача класпасов как параметр при запуске это как раз и есть атавистический кастыль... еще раз говорю проеты в NetBeans собираются похожим на мой способом и все работает без всяких батников и прочих костылей..
PM MAIL   Вверх
_and
Дата 21.5.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-developer
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 6.8.2004
Где: Новокузнецк

Репутация: 2
Всего: 4



почитай тут похоже у тебя тоже самое
PM MAIL ICQ Jabber   Вверх
Serjius
Дата 30.7.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток, Valor

Попробуй в строчке
Цитата

 <jar destfile="${dis}/${project_name}.jar" index="true"> 

убрать index="true"

и ты когда запускаешь
D:\Mydoc\eclipse_projects\jLogistic\distr>java -jar jLogistic.jar 
у тебя в папке D:\Mydoc\eclipse_projects\jLogistic\distr\lib
все нужные jar лежат?
в манифесте же указан путь lib\
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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