Bonjour,
Je précise tout de suite que j'ai plusieurs années d'expérience Java derrière moi, mais je travaille toujours sous Eclipse, et mes dernières compilations à la main sous Unix remontent à mon apprentissage scolaire.

Dans mon programme, j'ai besoin de connaître le nombre de pages d'un fichier PDF généré précédemment. J

J'ai donc créé une classe test à cet effet, qui ouvre un fichier PDF (via l'API Apache PdfBox) et compte le nombre de pages.

J'ai créé la dite classe, toute simple, sous Eclipse. Cela fonctionne à merveille.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
import java.io.File;
import java.io.IOException;
 
import org.apache.pdfbox.pdmodel.PDDocument;
 
class testPDF {
 
	public static void main(String args[]) {
		PDDocument doc = null;
		try {
			doc = PDDocument.load(new File("C:\\\\Lisezmoi.pdf"));
		} catch (IOException e) {
			e.printStackTrace();
		}
		int count = doc.getNumberOfPages();
		System.out.println("il y a "+count+" pages dans le document");
 
	}
 
}
Exécution :
il y a 20 pages dans le document
Me voilà donc parti sous linux, je dispose dans un même répertoire mon fichier testPDF.java, mon jar de pdfbox, et je me lance à la compilation à la main.

javac -classpath pdfbox-app-1.7.1.jar testPDF.java
Je compile sans soucis, jusque là ça va. C'est à l'exécution que ça se gâte.

java testPDF
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument
at testPDF.main(testPDF.java:12)
Je me dis alors qu'il faut que je rajoute de nouveau au classpath mon jar

java -cp pdfbox-app-1.7.1.jar testPDF
Exception in thread "main" java.lang.NoClassDefFoundError: testPDF
Une idée ?

Merci d'avance