|
|
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Исходные данные Есть 2 класса: 1. myPoint.class 2. myLine.class (который использует myPoint.class) Создан еще один класс Proba.class (находится в d:\Proba), в котором создаются экземпляры классов myPoint и myLine. (и в том и в другом классе, на всякий случай, все методы сделал public) В Proba.class импортировал Geometry. ( import Geometry.*; ) Классы myPoint и myLine упакованы в Geometry.jar и находятся в ..\jdk1.3\jre\lib\ext (в одной книге прочитал, что если *.jar помещен в эту директорию, то он находится автоматически и параметр -classpath при запуске не требуется). Теперь пробую запустить Proba.class на выполнение следующим образом: D:/Proba> java Proba Выдает исключительную ситуацию. К сожалению, пишу не со своего компа, помню только, что в названии присутствовало, что-то вроде: java.lang.NoDefFoundException: Proba. Соответственно, вопросы: 1. Что я делаю неправильно? 2. Как правильно подцеплять jar-архивы. Заранее спасибо. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2007, 22:06:51 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
- если Вы приводите правильное сообщение об ошибке, то в нем ругань идет не на классы хранящиеся в JAR-е, а на класс Proba, который в JAR не упакован. Соответственно надо думать о том как найти класс находяйщийся в папке d:\Proba. Попробуйте такую конструкцию: Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2007, 23:24:44 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Встречные вопросы: 1. Т.е. класс, который я хочу запустить также должен быть упакован в Geometry.jar? Как, в данном случае, следует запускать Proba.class (если он находится в Geometry.jar вместе с классами,кземпляры которых он создает)? 2. Можно ли просто подцепить Geometry.jar при запуске Proba.class, не укпаковывая его в Geometry.jar? Заранее благодарен. С уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 10:16:51 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.Встречные вопросы: 1. Т.е. класс, который я хочу запустить также должен быть упакован в Geometry.jar? Как, в данном случае, следует запускать Proba.class (если он находится в Geometry.jar вместе с классами,кземпляры которых он создает)? 2. Можно ли просто подцепить Geometry.jar при запуске Proba.class, не укпаковывая его в Geometry.jar? Заранее благодарен. С уважением 1. Лучше ничего в lib/ext не размещать. Это все равно, что свои DLL кидать в system32. 2. Все что вам нужно, это чтобы переменная CLASSPATH указывала на файл geometry.jar. В принципе, последняя приведенная строка запуска как раз это и делает. (ключ cp задает classpath) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 12:12:22 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Тогда я, вообще, ничего не понимаю. Вот смотрите: myPoint.class и myLine.class я скопировал в d:\Packages\Geometry. Затем в d:\Packages создал jar: d:\Packages> jar cvf Geometry.jar Geometry\*.class Proba.class находится в d:\Proba. Пробую его запустить: D:/Proba> java -cp .;c:\dir\Geometry.jar Proba Результат: Exception in thread "main" java.lang.NoClassDefFoundError: Proba Как быть? Заранее благодарен. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 13:45:49 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В Probа правильно определен Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 13:51:04 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.Тогда я, вообще, ничего не понимаю. Вот смотрите: myPoint.class и myLine.class я скопировал в d:\Packages\Geometry. Затем в d:\Packages создал jar: d:\Packages> jar cvf Geometry.jar Geometry\*.class Proba.class находится в d:\Proba. Пробую его запустить: D:/Proba> java -cp .;c:\dir\Geometry.jar Proba Результат: Exception in thread "main" java.lang.NoClassDefFoundError: Proba Как быть? Заранее благодарен. С уважением. Во-первых, из описанного должно быть: java -cp .;c:\ Packages \Geometry.jar Proba. Во-вторых, приведите исходник Proba.java. Хотя бы первые несколько строчек, чтобы увидеть - в каком он package. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 13:52:02 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
ЗашедшийВо-первых, из описанного должно быть: java -cp .;c:\ Packages \Geometry.jar Proba. Тьфу, то есть java -cp .; D:\Packages \Geometry.jar Proba А вообще советую почитать хотя бы FAQ на этом форуме. Многие вопросы отпадут, в том числе и данный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 14:01:25 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Сорри. Конечно, запускал так: Код: plaintext Файл Proba.java: Код: 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. Только он не в package, Проблема в том, что когда myPoint.class и myLine.class не упакованы в Geometry.jar все работает нормально (естественно с параметром -classpath), а вот когда они упакованы в Geometry.jar -classpath уже не помогает. Заранее благодарен. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 14:28:31 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.Сорри. Конечно, запускал так: Код: plaintext Файл Proba.java: Код: 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. Только он не в package, Проблема в том, что когда myPoint.class и myLine.class не упакованы в Geometry.jar все работает нормально (естественно с параметром -classpath), а вот когда они упакованы в Geometry.jar -classpath уже не помогает. Заранее благодарен. С уважением. Проверить, там ли лежит Geometry.jar. Проверить его содержимое. З.Ы. А с каких это пор названия пакетов с большой буквы писаться начали, кстати? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 14:46:41 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Geometry.jar лежит в d:\Packages. (Т.е. полный путь: d:\Packages\Geometry.jar) Единственное, чем я озадачен в данном случае, что в книге было сказано, что в архив классы следует помещать со структурой каталогов. Эту хитрую фразу я понял так, что классы следует скопировать в директорию и упаковывать за пределами этой диретории. Т.е. классы я кладу в D:\Packages\Geometry, затем поднимаюсь в D:\Packages и создаю архив. Т.е. содержимое архива: Geometry.jar: Geometry\myPoint.class, Geometry\myLine.class. Т.е. классы внутри каталога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 15:15:33 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.Geometry.jar лежит в d:\Packages. (Т.е. полный путь: d:\Packages\Geometry.jar) Единственное, чем я озадачен в данном случае, что в книге было сказано, что в архив классы следует помещать со структурой каталогов. Эту хитрую фразу я понял так, что классы следует скопировать в директорию и упаковывать за пределами этой диретории. Т.е. классы я кладу в D:\Packages\Geometry, затем поднимаюсь в D:\Packages и создаю архив. Т.е. содержимое архива: Geometry.jar: Geometry\myPoint.class, Geometry\myLine.class. Т.е. классы внутри каталога. А в самих классах прописано package Geometry; ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 15:23:42 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Во всех, кроме Proba.class Вот myPoint.java: Код: 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. Вот myLine.java: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 15:42:53 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Сделал все у себя, откомпилил - работает. З.Ы. Советую почитать соглашения об оформлении кода. Названия пакетов - с маленькой буквы, названия классов - с большой! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:47:35 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
Вобщем, ошибку нашел. Надо было в -classpath указать, в том числе, и путь до самого класса Proba. Всем огромное спасибо за помощь. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 14:26:18 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.Вобщем, ошибку нашел. Надо было в -classpath указать, в том числе, и путь до самого класса Proba. Как раз для этого точку используют, чтобы запускать из каталога, в котором класс лежит... В общем, понятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 14:40:18 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
День добрый! Вопрос вдогонку. Если пакеты и *.jar подцепляются, практически, одинаково (т.е. в плане запуска класса, что с пакетом, что с jar) , то когда что лучше использовать? Заранее спасибо. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2007, 13:30:20 |
|
||
|
Как правильно подцепить jar?
|
|||
|---|---|---|---|
|
#18+
В.В.День добрый! Вопрос вдогонку. Если пакеты и *.jar подцепляются, практически, одинаково (т.е. в плане запуска класса, что с пакетом, что с jar) , то когда что лучше использовать? Заранее спасибо. С уважением. Jar запускается медленнее (классы еще распаковать надо), но удобнее - в случае с классами их может быть много, и надо копировать целые структуры каталогов, а Jar - всего один файл. К тому же у Jar есть удобная штука под названием манифест - куда могут прописываться названия требуемых библиотек, запускаемый класс (Main-class). То есть можно написать некое графическое приложение, прописать в манифесте главный класс, запускающий все это, прописать используемые библиотеки (на забыв кинуть их в тот же каталог), и потом запускать в Винде стандартным двойным кликом. Для юзеров - намного удобнее, чем разбираться с classpath, запускать бат-файл и разбираться в опциях командной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2007, 14:08:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34289219&tid=2146757]: |
0ms |
get settings: |
15ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
104ms |
get tp. blocked users: |
2ms |
| others: | 316ms |
| total: | 542ms |

| 0 / 0 |
