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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> примитивный вопрос по javac, как указать много архивов 
V
    Опции темы
lazycat
Дата 28.1.2011, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

Вопрос, конечно, примитивный, но ответа найти не могу.
Надо скомпилировать исходный текст с помощью javac, при этом надо указать несколько десятков библиотек. В Unix это можно сделать посредством команды

javac -cp нужный_каталог.* имя_файла.java

В Windows тот же способ почему-то не проходит. Тут какие-то глобальные проблемы или я что-то делаю не так?

Подобная проблема периодически возникает, однако создавать проект в Eclipse ради одной компиляции не хочется, делать ant сценарий тоже как-то не тянет. 

Ну и после компиляции надо будет указать те же библиотеки для java.exe, следовательно возникнет та же задача.

Понятно, что это не вопрос жизни и смерти, обходных путей предостаточно, но все же лень лишние телодвижения совершать.

Заранее благодарен всем откликнувшимся

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


Опытный
**


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

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



Приблизительный батник
Код

@echo off
if "%OS%" == "Windows_NT" setlocal

set CLASSPATH=
for /f  %%i in ('dir lib /s /-b /a:-d ^| findstr /e .jar') do call :addToClasspath "%%i"
goto :doneAddToClasspath

:addToClasspath
  set CLASSPATH=%CLASSPATH%;"%~1"
  goto :end
:doneAddToClasspath

java -cp %CLASSPATH% %MAINCLASS% %*
:end

PM   Вверх
Skipy
Дата 28.1.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

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



Цитата(lazycat @ 28.1.2011,  02:20)
делать ant сценарий тоже как-то не тянет. 

Что-то мне это напоминает кота, который орал целый день, потому что встать лениво было...

Код
<?xml version="1.0"?>

<!-- Build file for test project -->
<project name="i18n tutorial build file" default="war" basedir=".">
    
    <!-- Source directory -->
    <property name="src.dir" value="src"/>

    <!-- Libraries directory -->
    <property name="lib.dir" value="lib"/>

    <!-- Classes directory -->
    <property name="classes.dir" value="classes"/>

    <!-- Target - compiles test -->
    <target name="compile" depends="prepare" description="Compiles sources">
        <echo message="Compiling sources..."/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}">
            <classpath>
                <fileset dir="${lib.dir}">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </javac>
    </target>
    
        <!-- Target - Runs application -->
    <target name="run" depends="compile" description="Runs test">
        <echo message="Running application..."/>
        <java classname="ru.skipy.tests.Main" fork="true">
            <classpath>
                <pathelement path="${classes.dir}"/>
                <fileset dir="${lib.dir}">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
            <jvmarg value="-Xmx128M"/>
        </java>
    </target>
   
</project>


Это действительно запредельный по сложности/затратам скрипт?


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
priam220
Дата 28.1.2011, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



lazycat,  видимо путь не правильно указал, у меня все ок:
Код

>javac -cp D:\workspace\JavaExampleProj\temp\* test\MyClass.java
>

PM MAIL   Вверх
lazycat
Дата 29.1.2011, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Skipy @  28.1.2011,  10:58 Найти цитируемый пост)
Это действительно запредельный по сложности/затратам скрипт? 


Я не говорил "сложно", я говорил "лень", а это совершенно разные вещи   smile . Ваша притча о коте, которому встать было лень, очень к месту, посмотрите на мой ник  smile 
PM MAIL   Вверх
priam220
Дата 29.1.2011, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Eсли лень писать батники и xml ки можно написать файлики @args. Там вообще не надо никакого спец синтаксиса.
PM MAIL   Вверх
lazycat
Дата 29.1.2011, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(priam220 @  28.1.2011,  12:07 Найти цитируемый пост)
lazycat,  видимо путь не правильно указал, у меня все ок:


Нашел причину. Объяснить лучше всего на моем примере.

Мне надо подключить библиотеки из JBoss. он у меня в каталоге с:\servers\jboss.

Задаю командную строку:

javac -cp c:\servers\jboss\lib\* MyProg.java

Получаю сообщение: 

javac: invalid flag: c:\servers\jboss\lib\dom4j.jar

Смотрю в каталог (но не через Commander и, конечно же, не через виндовые примочки, а старой доброй командной строкой).
Вижу, первый по очереди файл  concurrent.jar, а ВТОРОЙ (!) - dom4j.jar. То есть, опцию -cp c:\servers\jboss\lib\* система развернула в
-cp c:\servers\jboss\lib\concurrent.jar  c:\servers\jboss\lib\dom4j.jar ... 
Если я поставлю после значения опции точку с запятой (т.е. изменю командную строку так)

javac -cp c:\servers\jboss\lib\*; MyProg.java

то все работает нормально.

Спасибо всем откликнувшимся за помощь и обсуждение.



Это сообщение отредактировал(а) lazycat - 29.1.2011, 01:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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