-1

У меня есть исходный код, и в этом source указаны два classes.Получить классы из файла

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

Есть ли лучший способ, чем чтение файла и поиск классов, чтобы скомпилировать их в первую очередь?

package data.testcases 

import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 


@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
     XTest.class, 
     YTest.class 
}) 
public class ASuite { 
} 

XTest.java и YTest.java находятся в той же директории, как люкс

+0

Если ссылка на другие исходные файлы (.java), они будут скомпилированы автоматически, если вы скомпилируете свой код ... –

+0

Нет, они не являются. Файл для компиляции - это JUnit Suite, а классы - это Testcases. Ошибка при попытке скомпилировать Suite: java: 8: не может найти символ символ: класс XTest XTest.class, – ctekk

+0

@Coretek Итак, когда вы говорите «нет, они не являются», вы имеете в виду «да, они есть». Очевидно, что источник Java относится к классу XTest. В противном случае вы не получите эту ошибку компилятора. – EJP

ответ

2

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

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

+0

Я рассмотрю опцию sourcepath, спасибо за это в первом случае. – ctekk

+0

Работал, спасибо! – ctekk

1

Да, есть definitiveliy лучший метод. Используйте инструмент построения, например Apache Ant, чтобы организовать свои сборки. Есть несколько tutorials, включенных в муравейник Wiki.

+0

Нет. Я не хочу использовать внешние инструменты. – ctekk

2

Глядя на документы. для JavaCompiler предлагает мне, чтобы добавить их в истребимую коллекцию compilationUnits, предоставленную в getTask(..), должна достичь желаемого результата.

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

  • Нет связанных вопросов^_^