Я разработчик на C ++ - не Java-разработчик, но должен заставить этот код работать ...
У меня есть 2 открытых класса, которые будут использоваться другим продуктом. Я использовал директиву пакета в каждом из файлов Java.
package com.company.thing;
class MyClass ...
Когда я пытаюсь скомпилировать тестовое приложение, использующее это, я добавляю
import com.company.thing.*;
Сбой компилятора javac с ошибками о том, что com.company не существует. (даже если я скомпилирую его в том же каталоге, что и файлы классов, из которых я только что сделал пакет)
Я уверен, что делаю что-то глупое и глупое.
Я прочитал http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html страницы и попытался настроить структуру каталогов, например / com / company / thing и т. Д., Но либо я все испортил, либо мне что-то не хватает.
EDIT
спасибо за предложения - я пробовал classpath ранее. Это не помогает.
Я пытался скомпилировать
javac -classpath <parent> client.java
и результат:
package com.company does not exist
У меня есть код, который я хочу импортировать (два java-файла) в \ com \ company \ product. Я компилирую эти штрафа. (они содержат MyClass) Я даже сделал файл JAR для них. Я скопировал файл JAR в родительский каталог.
Я тогда сделал (в родительском каталоге с клиентским Java-файлом)
javac -cp <jarfile> *.java
результат:
cannot access MyClass
bad class file: MyClass.class(:MyClass.class)
class file contains wrong class: com.company.product.MyClass
Please remove or make sure it appears in the correct subdirectory of the classpath.
EDIT
Я получил код клиента для компиляции и запуска, если использовал полное имя MyClass и скомпилировал его в родительском каталоге. Я сейчас совершенно сбит с толку.
скомпилировано без указания пути к классу - просто
javac *.java
в родительском каталоге - и все работало нормально.
Я могу получить тестовое приложение для компиляции, но это не приведет к его сокращению, когда мне придется интегрировать его в производственный код. Все еще ищу помощи.
EDIT:
Наконец - не знаю, почему это не сработало раньше - но я очистил все файлы по всей структуре каталогов, и теперь это работает.
Спасибо