Автор темы
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
К курсу →
- Статус
- Закрыто для дальнейших ответов.
Автор темы
Вы можете создать переменную окружения CLASSPATH и прописывать туда все пути к классам (включая *.jar файлы, скажем, для сторонних библиотек).
Или же, можете задавать в командной строке при запуске своей программы:
java -cp pathesToClasses MyProg
в pathesToClasses символ ';' используется для разделения отдельных путей (если Вы указываете несколько директорий/jar/zip файлов с классами)
Если классы находятся в jar файле (большинство сторонних библиотек), то необходимо указывать полный путь к файлу и имя самого файла. Например, если у Вас есть стороння библиотека F:\Java\ThirdPartyLibraries\someLib.jar, то запуск программы, ее использующий может выглядеть так:
java -cp F:\Java\ThirdPartyLibraries\someLib.jar;./ MyProg
'./' - указывает, что текущая директория (откуда вы запускаете эту командную строку) рассматривается как часть CLASSPATH. Это полезно при запуске своих программ во время их разработки, отладки. Следует учитывать, однако, что если Ваш класс, содержащий функцию main() входит в некий myPackage пакет(package), то Вы должны в CLASSPATH указать путь к директории/jar файлу, содержащему папку myPackage и задавать имя класса в форме myPackage.MyProg.
Например, Вы имеете: F:\Java\MyProjects\myPackage\MyProg.class (MyProg содержится в пакете myPackage)
тогда, чтобы запустить Вашу программу, необходимо, находясь в директории F:\Java\MyProjects\ набрать java -cp F:\Java\ThirdPartyLibraries\someLib.jar;./ myPackage.MyProg
Рукомендую применять bat файлы
Иначе все это скоро начинает раздражать 
Если применяете shortcut'ы для запуска программы прямо с десктопа Windows, не забывайте задавать соответствующую рабочую директорию, в последнем примере это будет F:\Java\MyProjects
Или же, можете задавать в командной строке при запуске своей программы:
java -cp pathesToClasses MyProg
в pathesToClasses символ ';' используется для разделения отдельных путей (если Вы указываете несколько директорий/jar/zip файлов с классами)
Если классы находятся в jar файле (большинство сторонних библиотек), то необходимо указывать полный путь к файлу и имя самого файла. Например, если у Вас есть стороння библиотека F:\Java\ThirdPartyLibraries\someLib.jar, то запуск программы, ее использующий может выглядеть так:
java -cp F:\Java\ThirdPartyLibraries\someLib.jar;./ MyProg
'./' - указывает, что текущая директория (откуда вы запускаете эту командную строку) рассматривается как часть CLASSPATH. Это полезно при запуске своих программ во время их разработки, отладки. Следует учитывать, однако, что если Ваш класс, содержащий функцию main() входит в некий myPackage пакет(package), то Вы должны в CLASSPATH указать путь к директории/jar файлу, содержащему папку myPackage и задавать имя класса в форме myPackage.MyProg.
Например, Вы имеете: F:\Java\MyProjects\myPackage\MyProg.class (MyProg содержится в пакете myPackage)
тогда, чтобы запустить Вашу программу, необходимо, находясь в директории F:\Java\MyProjects\ набрать java -cp F:\Java\ThirdPartyLibraries\someLib.jar;./ myPackage.MyProg
Рукомендую применять bat файлы
Если применяете shortcut'ы для запуска программы прямо с десктопа Windows, не забывайте задавать соответствующую рабочую директорию, в последнем примере это будет F:\Java\MyProjects
В дополнение к пред. посту
Путь к сторонним библиотекам может быть задан не только в абсолютной форме - это было написано только для примера. При задании CLASSPATH применимы любые валидные абсолютные или относительные пути. Скажем, если Вы распространяете свою программу, то можно расместить необходимые сторонние библиотеки в некой папке Вашего дистрибутива и задавать относительный путь к этой папке от месторасположения исполняемого файла, запускающего Вашу программу.
Путь к сторонним библиотекам может быть задан не только в абсолютной форме - это было написано только для примера. При задании CLASSPATH применимы любые валидные абсолютные или относительные пути. Скажем, если Вы распространяете свою программу, то можно расместить необходимые сторонние библиотеки в некой папке Вашего дистрибутива и задавать относительный путь к этой папке от месторасположения исполняемого файла, запускающего Вашу программу.
А где находится библиотека стандартных классов в JDK 1.5
Случайно не в файле src.zip?
Случайно не в файле src.zip?
Что такое CLASSPATH? Файл, переменная? Где находится, какой формат, расширение? Знает кто-нибудь?
Проблема.
Прочитал вышенаписанное по поводу classpath, но работать отказывается:
1. Есть приложение Test.class , которое находится в пакете положим com.iba.eun.sync
2. Физически файл лежит на d:\app\WEB-INF\classes\com\iba\eun\sync\Test.class
3. При попытке запустить из каталога с помощью:
java Test
или
java com.iba.eun.sync.Test
или
java -classpath .\ com.iba.eun.sync.Test
вываливается:
Exception in thread "main" java.lang.NoClassDefFoundError com/iba/eun/sync/Test
либо
Exception in thread "main" java.lang.NoClassDefFoundError com/iba/eun/sync/Test (wrong name: com/iba/eun/sync/Test)
Внимание вопрос: как запустить это гр*цензура*ное
приложение?
з.ы. переменная окружения CLASSPATH в системе описана
Прочитал вышенаписанное по поводу classpath, но работать отказывается:
1. Есть приложение Test.class , которое находится в пакете положим com.iba.eun.sync
2. Физически файл лежит на d:\app\WEB-INF\classes\com\iba\eun\sync\Test.class
3. При попытке запустить из каталога с помощью:
java Test
или
java com.iba.eun.sync.Test
или
java -classpath .\ com.iba.eun.sync.Test
вываливается:
Exception in thread "main" java.lang.NoClassDefFoundError com/iba/eun/sync/Test
либо
Exception in thread "main" java.lang.NoClassDefFoundError com/iba/eun/sync/Test (wrong name: com/iba/eun/sync/Test)
Внимание вопрос: как запустить это гр*цензура*ное
з.ы. переменная окружения CLASSPATH в системе описана
Для: Dikobraz Grey
Плохой совет. Человек должен разобраться сначала что и как работает, прежде чем юзать IDE. Иначе так и не будет понимать, как работает IDE.
Для: the_lelic
Выйди в каталог classes и запускай оттуда java com.iba.eun.sync.Test
J:\trtr>E:\Java\jdk5.0\bin\javac com/iba/eun/sync/Test.java
J:\trtr>E:\Java\jdk5.0\bin\java com.iba.eun.sync.Test
Hello World!
Плохой совет. Человек должен разобраться сначала что и как работает, прежде чем юзать IDE. Иначе так и не будет понимать, как работает IDE.
Для: the_lelic
Выйди в каталог classes и запускай оттуда java com.iba.eun.sync.Test
J:\trtr>E:\Java\jdk5.0\bin\javac com/iba/eun/sync/Test.java
J:\trtr>E:\Java\jdk5.0\bin\java com.iba.eun.sync.Test
Hello World!
Спасибо заработало!
Еще вопрос:
а если я в классе Test должен использовать классы, находящиеся в этих пакетах (com.iba.eun.sync)
мне что все используемые классы надо прописывать в -classpath ?
или есть какое нибудь другое решение
p.s. делать из них библиотеку нельзя
Еще вопрос:
а если я в классе Test должен использовать классы, находящиеся в этих пакетах (com.iba.eun.sync)
мне что все используемые классы надо прописывать в -classpath ?
или есть какое нибудь другое решение
p.s. делать из них библиотеку нельзя
- Статус
- Закрыто для дальнейших ответов.
Ещё по теме
4
Поделиться: