Bir dizin içindeki tüm jar dosyalarını sınıf yoluna dahil etmenin bir yolu var mı?
java -classpath lib/*.jar:. my.package.Program`ı deniyorum ve kesinlikle bu kavanozlarda bulunan sınıf dosyalarını bulamıyor. Her bir jar dosyasını sınıf yoluna ayrı ayrı mı eklemem gerekiyor?
Eğer gerçekten tüm .jar dosyalarını dinamik olarak belirtmeniz gerekiyorsa kabuk betikleri ya da Apache Ant kullanabilirsiniz. Commons Launcher]2 adında bir commons projesi var, bu proje temel olarak başlangıç betiğinizi bir ant derleme dosyası olarak belirtmenize izin veriyor (ne demek istediğimi anlıyorsanız).
Ardından, aşağıdaki gibi bir şey belirtebilirsiniz:
<path id="base.class.path">
<pathelement path="${resources.dir}"/>
<fileset dir="${extensions.dir}" includes="*.jar" />
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
Başlat derleme dosyanızda, uygulamanızı doğru sınıf yolu ile başlatacaktır.
Hepsini ayrı ayrı eklemeniz gerekir. Alternatif olarak, gerçekten sadece bir dizin belirtmeniz gerekiyorsa, her şeyi tek bir dir'e açabilir ve bunu sınıf yolunuza ekleyebilirsiniz. Ancak bu yaklaşımı tavsiye etmiyorum çünkü sınıf yolu sürümleme ve yönetilemezlik konusunda tuhaf sorunlar yaşama riskiniz var.