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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> javac : как правильно откомпилировать? 
:(
    Опции темы
AndreQ
Дата 27.1.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Очень простая структура классов :

A.class
Код

public class A {
    
    public A() {
        System.out.println("Create A class");    
    }

}

class B {
    String name = "Это класс с доступом в пределах пакета.\n" + 
                "Почему же его не видит компилятор?";

    B() {
        System.out.println("Create B class");
    }    
}


C.class
Код

public class C {

    public static void main(String[] params) {
        // tested compiler
        new B();
    }
}


ком. строка :javac -sourcepath . C.java

Вопрос почему не находится класс "B"?
И самое главное как это откомпилировать?

p.s. вариант : javac -sourcepath . *.java - не предлагать




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


Шустрый
*


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

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



Потому как наблюдается ошибка в классе С:
Код

 new B();
не прокатит! Обьект надо создать...
Вот так например:
Код

B b = new B();

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


Нелетучий Мыш
****


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

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



Цитата(onsh76 @ 27.1.2006, 04:59 Найти цитируемый пост)

не прокатит! Обьект надо создать...

Почему, вполне возможно такое.

AndreQ
А ты файл A.java предварительно скомпилировал?

Цитата(AndreQ @ 27.1.2006, 01:57 Найти цитируемый пост)

A.class

Это опечатка, или они у тебя действительно называются .class? Хотя это и не существенно.




У меня все нормально отработало:
Цитата

javac A.java

javac C.java

java C
Create B class


Это сообщение отредактировал(а) Lamer George - 27.1.2006, 09:18


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
val
Дата 27.1.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


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

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



Цитата

И самое главное как это откомпилировать?


Рекомендую не заморачивать себе голову, а происталлировать какую-нибудь среду разработки, она и все пути пропишет и на ошибки укажет. Со своей стороны рекомендую Eclipse, но это вопрос вкуса. smile


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
batigoal
Дата 27.1.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(val @ 27.1.2006, 11:05 Найти цитируемый пост)

Рекомендую не заморачивать себе голову, а происталлировать какую-нибудь среду разработки, она и все пути пропишет и на ошибки укажет.

А я как раз рекомендую заморачивать - так намного полезнее.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 27.1.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Проблема будет если класс B объявлен не в файле B.java, т.к. package private класс может быть объявлен в любом файле (хоть QQQ.java) компилятор не может просматривать их все в поисках нужного класса.


--------------------
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   Вверх
batigoal
Дата 27.1.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата(LSD @ 27.1.2006, 11:24 Найти цитируемый пост)

Проблема будет если класс B объявлен не в файле B.java, т.к. package private класс может быть объявлен в любом файле (хоть QQQ.java) компилятор не может просматривать их все в поисках нужного класса.

Компилятор же их, по-моему, вообще не просматривает. Он работает только в рамках того фала, который подан ему на вход.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 27.1.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Lamer George @ 27.1.2006, 10:35 Найти цитируемый пост)
Компилятор же их, по-моему, вообще не просматривает. Он работает только в рамках того фала, который подан ему на вход.

Ну да, он их не просматривает. Но если ему будет нехватать класса Foo, то он по крайней мере попытается найти его в файле Foo.java и скомпилировать.


--------------------
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   Вверх
batigoal
Дата 27.1.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Круто. Не знал.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
onsh76
Дата 27.1.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Lamer George @ 27.1.2006, 09:14)
Цитата(onsh76 @  27.1.2006,  04:59 Найти цитируемый пост)

не прокатит! Обьект надо создать...

Почему, вполне возможно такое.

AndreQ
А ты файл A.java предварительно скомпилировал?

Цитата(AndreQ @ 27.1.2006, 01:57 Найти цитируемый пост)

A.class

Это опечатка, или они у тебя действительно называются .class? Хотя это и не существенно.




У меня все нормально отработало:
Цитата

javac A.java

javac C.java

java C
Create B class

Тормознул, пардон. smile
PM MAIL   Вверх
batigoal
Дата 27.1.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Цитата

Каждый человек имеет право на немного потупить.

smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
AndreQ
Дата 28.1.2006, 03:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так что, получается невозможно из командной строки нормально скомпилить проект если в нём будут встречаться не public классы?
(Eclipse то, каким-то образом это проделывает)

Вариант скомпилить сначала класс А, а потом С малость неудобен для большого проекта в котором может быть туча таких ситуаций.
Добавлено @ 03:35
Так что, получается невозможно из командной строки нормально скомпилить проект если в нём будут встречаться не public классы?
(Eclipse то, каким-то образом это проделывает)

Вариант скомпилить сначала класс А, а потом С малость неудобен для большого проекта в котором может быть туча таких ситуаций.


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


Leprechaun Software Developer
****


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

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



Цитата(AndreQ @ 28.1.2006, 03:34 Найти цитируемый пост)
Так что, получается невозможно из командной строки нормально скомпилить проект если в нём будут встречаться не public классы?

1. Для сборки больших проектов лучше использовать средства посерьезней, типа ANT или Maven (у нас в FAQ есть статейка про ANT).
2. Помещай не public классы в отдельный файлы, так же как и public. Тогда компилятор справится с ними.


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

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

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


 




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


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

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