Ho un problema con il seguente codice: Dovrebbe teoricamente prendere un file in formato PDF nel path specificato e poi salvarmelo come immagine in un'altro path specificato, solo che quando faccio RUN (con Eclipse) e gli dico JavaApplication, mi apre una finestra con scritto : Select Java Apllication Select Type... Select Item (con una lista di vari Item)


E qui mi blocco non sapendo come procedere... So che è una domanda stupida, ma cosa devo fare?




codice:
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

import javax.imageio.ImageIO;

import com.sun.pdfview.PDFFile;
import com.sun.pdfview.PDFPage;

public class ProvaPdf {
	
	
	public static BufferedImage[] getImgFromPDF(File pdf) {
		// Dichiaro l'array di immagini che dovrò ritornare
		BufferedImage[] immagini = null;

		try {
			// Faccio l'accesso al file pdf da elaborare
			RandomAccessFile raf = new RandomAccessFile(pdf, "r");

			// A questo punto per poter utilizzare la classe PDFFile di
			// com.sun.pdfview dovrò creare un buffer in memoria
			// che in genere, per questa libreria viene creato dal FileChannel
			FileChannel channel = raf.getChannel();
			// Mappandolo in un buffer il suo contenuto,
			// FileChannel.MapMode.READ_ONLY serve per impedire che in qualche
			// modo l'origine venga modificata
			ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
			// Istanzio la classe PDFFile che rappresenta il mio PDF
			PDFFile pdffile = new PDFFile(buf);
			// Mi facio restituire il numero delle pagine
			int num = pdffile.getNumPages();
			// Creo l'array delle immagini
			immagini = new BufferedImage[num];

			// Riprendo un'immagine per volta
			for (int i = 0; i < num; i++) {
				// La metto nell'oggetto PDFPage
				PDFPage page = pdffile.getPage(i);

				// Prendo le dimenzioni allo zoom di default del pdf
				int width = (int) page.getBBox().getWidth();
				int height = (int) page.getBBox().getHeight();

				// Creo un rettangolo uguale alla pagina
				Rectangle rect = new Rectangle(0, 0, width, height);
				// Prendo la rotazione della pagina e se è impostata a 90 o 270,
				// quindi girata in verticale
				int rotation = page.getRotation();
				Rectangle rectRotato = rect;
				if (rotation == 90 || rotation == 270) {
					// Mi creo un'altro rettangolo con le dimensioni invertite,
					// se invece non entro in questo in i due rettangoli sono
					// uguali
					rectRotato = new Rectangle(0, 0, rect.height, rect.width);
				}

				// genero l'immagine con il metodo getImage di PDFPage
				BufferedImage img = (BufferedImage) page.getImage(rect.width, rect.height, // width
																							// &
																							// height
						rectRotato, // clip rect
						null, // null per l'ImageObserver
						true, // setto lo sfondo bianco, false lo avrebbe fatto
								// trasparente
						true // attendo fino a quando l'immagine non è stata
								// creata prima di proseguire
						);

				// Setto nella posizione corrente l'immagine creata
				immagini[i] = img;
			}
		} catch (FileNotFoundException ex) {
			System.err.println(ex.getLocalizedMessage());
		} catch (IOException ex) {
			System.err.println(ex.getLocalizedMessage());
		}

		return immagini;
	}

	public static void main() {
		File filePdf = new File("D:\\Documenti\\Download\\1.3.6.1.4.1.21367.2005.3.9999.758111111111803 (1).pdf");
		BufferedImage[] buffImg = getImgFromPDF(filePdf);
		int i=0;
		try {
			ImageIO.write(buffImg[0], "png", new File("C:\\" + i + "_.png"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
	}
}