JavaRush /Java блог /Архив info.javarush /Нужна помощь в компиляции пакетов
web-maker
33 уровень
Zaporizhzhya

Нужна помощь в компиляции пакетов

Статья из группы Архив info.javarush
Всем привет. Штудирую Эккеля, пытаюсь разобраться в компиляции пакетов, но пример в книге описан скудно, в сети инфы толковой не нашел, поэтому прошу тут гуру разжевать мне в чем проблема.
Вообщем, есть папка access, в ней файл LibTest.java, его содержимое:

//: access/LibTest.java // Uses the library. import net.mindview.simple.*; public class LibTest { public static void main(String[] args) { Vector v = new Vector(); List l = new List(); } } /* Output: net.mindview.simple.Vector net.mindview.simple.List *///:~ На одном уровне с папкой access есть пакет net/mindview/simple, в папке simple лежит файл List.java

//: net/mindview/simple/List.java // Creating a package. package net.mindview.simple; public class List { public List() { System.out.println("net.mindview.simple.List"); } } ///:~ и файл Vector.java

//: net/mindview/simple/Vector.java // Creating a package. package net.mindview.simple; public class Vector { public Vector() { System.out.println("net.mindview.simple.Vector"); } } ///:~ Файлы Vector.java и List.java компилируются нормально, а когда пытаюсь скомпилировать LibTest.java то получаю ошибку LibTest.java:3: error: package net.mindview.simple does not exist
Пробовал компилировать разными командами, например

javac LibTest.java
javac -classpath . LibTest.java
javac D:/Work/Java/stud/access/LibTest.java

Переменные среды установлены, для Path добавлен путь C:\Program Files\Java\jdk1.7.0_60\bin, для CLASSPATH добавлен D:\Work\Java\stud
Что я делаю не так, почему компилятор не подтягивает файлы пакета, как я понимаю он должен их искать в CLASSPATH?
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Izhak Уровень 22
28 августа 2014
Здесь info.javarush.ru/Izhak/2014/08/14/Замыкаем-контакты-и-получаем-письмо.html
я описал полностью процесс начиная с создания проекта до компиляции в jar и в exe.
В идее вообще ничего делать не надо — раз раз и готово. :)
blacky Уровень 23
28 августа 2014
Java Tutorials — Managing Source and Class Files

Папку access я переименовал в src:
#step 1: make folders & files
~/src$ tree
.
├── LibTest.java
└── net
    ├── midview
    └── mindview
        └── simple
            ├── List.java
            └── Vector.java

4 directories, 3 files
#step 2: compile *.java files
~/src$ javac LibTest.java
~/src$ tree 
.
├── LibTest.class
├── LibTest.java
└── net
    ├── midview
    └── mindview
        └── simple
            ├── List.class
            ├── List.java
            ├── Vector.class
            └── Vector.java

4 directories, 6 files
#step 3: start program
~/src$ java LibTest 
net.mindview.simple.Vector
net.mindview.simple.List

Почему *.class не стоит располагать в src и как сделать по-другому, а также почему можно просто выполнить команду javac LibTest.java — тебе стоит разобраться самому.
hubert Уровень 41
28 августа 2014
LibTest.java:3: error: package net.mindview.simple does not exist

1. Читаешь про пакеты в java
2. Делаешь у себя папочки, как написано в ошибке
3. Помещаешь туда код
4. Или просто в идее кликаешь на красный (100%) пакет сверху класса, и тебе предлагает все исправить за тебя