Можно ли скомпилировать файл Java без предоставления его зависимостей? - PullRequest
10 голосов
/ 22 июня 2011

Есть файл java, в котором есть некоторые зависимости jars.Но сейчас у меня нет этих jar-файлов, и я должен скомпилировать их в файл .class.

Возможно ли это сделать?


ОБНОВЛЕНИЕ

Спасибо за ваши ответы.

Сначала я подумал, что мы можем создать заглушки для отсутствующих зависимостей, это просто, но скучно.Поскольку мы можем создавать заглушки без отсутствующих заглушек, чтобы компилятор был доволен, почему мы не можем заставить инструмент делать это автоматически?Инструменту не нужно создавать заглушки, но он читает файл java, собирает информацию и затем создает файлы .class.

Но если операторы "import" в файле java содержат "*", это означает, чтобудет проблема:

import aaa.*
import bbb.*

public class Hello {
   World world;
}

Мы не знаем, находится ли класс "World" в пакете "aaa" или "bbb".Если мы не знакомы с отсутствующими зависимостями, мы даже не знаем, как создать заглушку для класса «Мир».

Но если утверждения "import" понятны, я думаю, что это возможно, но, возможно, никто не напишет такой инструмент

Ответы [ 4 ]

11 голосов
/ 22 июня 2011

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

5 голосов
/ 22 июня 2011

Нет.Сожалею.Для компиляции вам понадобятся все зависимости в classpath.

3 голосов
/ 22 июня 2011

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

Тогда теоретически, если вы возьмете файл .class, который компилируется, и поместите с ним реальные зависимости в путь к классам, ваше приложение будет работать с использованием правильных (не заглушенных) классов зависимостей.

1 голос
/ 22 июня 2011

Перед компиляцией любого файла он всегда ищет какие-либо зависимости.но вы сказали, что у вас нет этих jar-файлов.попробуй!

...