Υπάρχει τρόπος να συμπεριλάβετε όλα τα αρχεία jar εντός ενός καταλόγου στο classpath;
Δοκιμάζω το java -classpath lib/*.jar:. my.package.Program
και δεν είναι σε θέση να βρει αρχεία κλάσεων που βρίσκονται σίγουρα σε αυτά τα jars. Μήπως πρέπει να προσθέσω κάθε αρχείο jar στο classpath ξεχωριστά;
Αν πραγματικά πρέπει να καθορίσετε όλα τα αρχεία .jar δυναμικά, μπορείτε να χρησιμοποιήσετε σενάρια κελύφους ή το Apache Ant. Υπάρχει ένα έργο commons που ονομάζεται Commons Launcher, το οποίο ουσιαστικά σας επιτρέπει να καθορίσετε το σενάριο εκκίνησης ως αρχείο κατασκευής ant (αν καταλαβαίνετε τι εννοώ).
Στη συνέχεια, μπορείτε να καθορίσετε κάτι σαν:
<path id="base.class.path">
<pathelement path="${resources.dir}"/>
<fileset dir="${extensions.dir}" includes="*.jar" />
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
στο αρχείο κατασκευής της εκκίνησης, το οποίο θα εκκινήσει την εφαρμογή σας με το σωστό classpath.
Πρέπει να τα προσθέσετε όλα ξεχωριστά. Εναλλακτικά, αν πραγματικά πρέπει να καθορίσετε μόνο έναν κατάλογο, μπορείτε να τα ξεδιπλώσετε όλα σε έναν κατάλογο και να τα προσθέσετε στο classpath σας. Ωστόσο, δεν συνιστώ αυτή την προσέγγιση, καθώς κινδυνεύετε με περίεργα προβλήματα στην έκδοση του classpath και τη μη διαχειρισιμότητα.
Σκεφτείτε ένα αρχείο jar ως τη ρίζα μιας δομής καταλόγου. Ναι, πρέπει να τα προσθέσετε όλα ξεχωριστά.