Что такое пункт javac -sourcepath?Разница между исходным файлом и просто указанием исходного файла?
Скажите у вас есть файл Ball.java, и файл Eight.java, кажется, нет никакой разницы между работой:
javac Eight.java lib/pool/Ball.java
и
javac Eight.java -sourcepath lib
Путь к папкам имеет смысл для меня, как это означает, что вам просто нужно распространять файлы классов для разработчиков, которым не нужно будет связываться с источником, но я думаю, что у вас может быть только источник/источник, если это ваш собственный/внутренний проект, поэтому он не может понять почему это необходимо.
У людей есть большие хранилища исходного кода вместо классов?
Из дальнейшего тестирования я подтвердил, что -sourcepath даже не учитывает последнюю измененную дату источника, такую как путь к классам, поэтому даже не мог сэкономить время во время строительства. Как и при использовании -classpath, он будет создавать файл .class, если он не существует, а источник - или, если файл .java является более новым, чем файл .class, тогда как любые исходные файлы на пути к исходному файлу будут построены снова безотносительно о том, насколько они новы. И когда заданы -sourcepath и -classpath, тогда требуется, чтобы действие пути к классам восстанавливалось только в том случае, если исходные файлы новее, поэтому указание пути источника и пути к классам кажется совершенно бессмысленным. Я также проверил, что -sourcepath и -classpath создают только необходимые исходные файлы, необходимые для разрешения. Единственный недостаток от -sourcepath в отношении указания конкретных .java-файлов, которые я могу найти, заключается в том, что sourcepath просто должен иметь указанный каталог, и любые файлы jar или zip автоматически извлекаются.
Итак, точка -sourcepath из-за лень (не желая извлекать & указать все исходные файлы)? И есть ли какой-либо потенциал для использования -sourcepath over -classpath? Так как они, похоже, делают то же самое, но classpath лучше всего работает, экономя время, когда источник не нуждается в перестройке.
Да, другое отличие, которое я обнаружил при тестировании, заключается в том, что classpath будет искать файлы .class и .java для разрешения и будет строить источник, если файл .class не существует или файл .java имеет модифицированное время больше, чем файл .class.В то время как sourcepath будет перекомпилировать источник каждый раз, независимо от последней измененной даты. Я просто пытался выяснить по этой причине, есть ли различия между указанием каталога для sourcepath и явным указанием, что вы хотите, чтобы точный файл, созданный javac – lavamunky