2009-12-23 5 views
2

Я делаю сценарий сборки для приложения Java для работы внутри JVM Oracle. Чтобы импортировать 50-нечетные классы, кажется, мне нужно привести их в порядок, поэтому перед компиляцией присутствуют любые зависимости.Как я могу сгенерировать список классов в порядке зависимости?

Для каждого класса я запускаю 'create or replace and compile java source {className} as {classPath}' для каждого файла. Это дает мне ошибку компиляции, так как требуемый класс (ы) не импортируется.

Как я могу сгенерировать список классов в порядке зависимости, то есть по мере того, как вы переходите по списку, зависимости этого класса перечислены выше. Я бы предпочел сделать это как задачу Ant.

Также, если у вас есть лучшее представление о том, как импортировать эти классы, я хотел бы услышать ваши идеи.

+0

Как немного взломать, после всех ошибок компиляции я попытался запустить «ALTER JAVA CLASS»/d6c58067_JdbcPayslipDao «RESOLVE;» для каждого из 26 недопустимых классов. Это не работает, все еще жалуясь на ошибки компиляции. –

+0

Вы интересуетесь только статическими зависимостями или вам также нужно знать о таких вещах, как Class.forName («Foo»)? – TofuBeer

+0

Просто статические зависимости –

ответ

0

Чтобы импортировать 50-нечетные классы, кажется, мне нужно привести их в порядок, чтобы любые зависимости присутствовали перед компиляцией.

Мне никогда не приходилось делать такие вещи просто для компиляции Java.

Это то, для чего родился муравей. Я бы рекомендовал просто сделать это с Ant. Установите <classpath>, и у вас не будет проблем.

+0

Вы правы, в мире Java или Ant, но это загрузка классов Java в Oracle через SQLPlus. Я использую Ant для создания разворачиваемого артефакта и динамически делаю SQL для загрузки класса (т. Е. Создания ...) –

0

Метод грубой силы: положите 50 CREATE в пакетном файле и выполните его до тех пор, пока не будут найдены ошибки. Создайте цикл в сценарии оболочки. Конечно, это никогда не закончится, если в источниках есть ошибки, но я предполагаю, что они в порядке.

+0

Я не думаю, что клиент одобрит это. Они до сих пор применяют довольно строгие методы и, похоже, предпочитают мне вручную анализировать классы, чтобы упорядочить список классов. –

1

Скомпилируйте классы в файловой системе, используя задачу Antjavac. Используйте задачу depend, если требуется более строгая проверка зависимостей. Используйте инструмент loadjava для загрузки файлов .class и .java в базу данных в произвольном порядке.

+0

Глядя на 'dbms_java.loadjava()' в настоящее время. –

1

Я не могу себе представить, зачем вам это нужно, но если вам действительно нужно это сделать, мне интересно, если взломать небольшой загрузчик классов, который печатает каждый класс, когда он загружает и загружает ваше приложение, вы граф зависимости?

+0

Следует отметить, что зависимости в Java могут быть циклическими. На самом деле нет порядка, который бы работал в этом случае. –

0

Не можете ли вы загрузить файл в банке? Почему это должны быть отдельные классы?

Смежные вопросы