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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пакеты и Папки, Иерархии пакетов и каталогов 
:(
    Опции темы
Vovan_Danielyan
Дата 12.8.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

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



Изучая пакеты, узнал, что иерархия пакетов должна точно совпадать с иерархией каталогов. Так вот, появился вопрос:
программа начинается с подключения класса из стандартного пакета:
Код

import java.io.File;
........

раз есть такой покет, следовательно должен существовать каталог java/io в котором я найду класс File. Но вот только я этот каталог нигде не видел - хотя искал повсюду.
Подскажите: может, я ищу не там, или вообще нет такого каталога, и все это ерунда?
PM MAIL   Вверх
chand0s
Дата 12.8.2007, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Либо должна быть иерархия каталогов либо эта же самая иерархия должна быть "положена" в jar-файл.  В любом случае, и путь до иерархии и путь по jar'а необходимо указывать в classpath.
PM MAIL   Вверх
DsKTY
Дата 12.8.2007, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот: 
 .. \jdk1.6.0_01\jre\lib\rt.jar


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


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Vovan_Danielyan @  12.8.2007,  01:00 Найти цитируемый пост)
Изучая пакеты, узнал, что иерархия пакетов должна точно совпадать с иерархией каталогов.

На самом деле не должна smile
Единственное, что должно быть - ClassLoader должен уметь загрузить этот класс, различая классы в разных пакетан, но с одинаковыми именами. Просто таково поведение системного ClassLoader-а. А вот если взять Oracle, то там классы лежат в полях таблицы и никакой структуры каталогов там нет. Ты можешь написать свой ClassLoader и реализовать там какой хочешь алгоритм.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Vovan_Danielyan
Дата 12.8.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

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



Про то, что можно запихать иерархию в класс не знал, спасибо, chand0s
Непонятно осталось только одно:
Цитата

В любом случае, и путь до иерархии и путь по jar'а необходимо указывать в classpath.

А у меня переменная CLASSPATH вообще не определена, java как-то сама находит этот архив - по умолчанию что-ли?
А переписывать ClassLoader я лучше пока не буду smile

Это сообщение отредактировал(а) Vovan_Danielyan - 12.8.2007, 18:39
PM MAIL   Вверх
LSD
Дата 12.8.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Vovan_Danielyan @  12.8.2007,  19:38 Найти цитируемый пост)
А у меня переменная CLASSPATH вообще не определена, java как-то сама находит этот архив - по умолчанию что-ли?

Да все свои классы JRE найдет и без указания CLASSPATH.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Invisible
Дата 23.11.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Простите что поднимаю тему, но перечитав кучу ваших постов и различных статей на тему пакетов так и не смог реализовать.

У меня есть CLASSPATH:
.;C:\java.lab\lessonI\classF4;C:\Program Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip

Хочу создать пакет , пишу 
Файл some.java
Код

package classF4;   
        
class some {


Файл sss.java
Код

import java.awt.Point;
package classF4;
class sss {
   void main() {
      System.out.println(new Point());
System.out.println(new some());

   }

Оба файла в папке clssF4, это правильно?? Что делаю не так?
PM MAIL   Вверх
DKroshkin
Дата 23.11.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1. Все import-ы должны быть после package
2. Если у тебя метод main это точка входа на исполнение, то должна определяться как public static void main(...)


Это сообщение отредактировал(а) DKroshkin - 23.11.2007, 10:43
PM MAIL   Вверх
Hidrag
Дата 23.11.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Invisible @  23.11.2007,  09:15 Найти цитируемый пост)
Оба файла в папке clssF4, это правильно?? Что делаю не так? 

Правильно! Ты ведь указал один и тот же пакет для обоих классов и учти замечания  DKroshkin


--------------------
user posted image
PM WWW ICQ   Вверх
DKroshkin
Дата 23.11.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



+ еще одно замечание. 
Имя файла должно соответствовать открытому классу. Т.е. классы должны быть со спецификатором public

Если не прав то поправьте.

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


Шустрый
*


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

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



Изменил код таким образом:
Файл sss.java
Код

package clssF4;

import java.awt.Point;
public class sss {
   public static void main() {
      System.out.println(new Point());
   }



А он теперь вобще пишет то что я не понимаю:
Код

(С) Корпорация Майкрософт, 1985-2001.

C:\java.lab\lessonI\clssF4>javac sss.java

C:\java.lab\lessonI\clssF4>java sss
Exception in thread "main" java.lang.NoClassDefFoundError: sss (wrong name: clss
F4/sss)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

C:\java.lab\lessonI\clssF4>
 

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


Опытный
**


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

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





--------------------
user posted image
PM MAIL ICQ   Вверх
_Michael
Дата 23.11.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Неее. Надо так:

C:\java.lab\lessonI>java clssF4.sss


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Hidrag
Дата 23.11.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



_Michael, не надо так,

надо так:
Цитата(fixxer @  23.11.2007,  16:00 Найти цитируемый пост)
Читать вдумчиво 
 иначе не поймет и завтра снова спросит



--------------------
user posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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