Newsgroup: it.comp.java
Titolo: ZipException: The system cannot...

Buongiorno a tutti.
Mi ritrovo a dover implementare un programmino che poi verrà schedulato.
Visto che qui c'è l'abitudine di cambiare server anche a livello di SO,
mi sono deciso a farlo in java.
Il programmino dovrà accedere ad oracle, così ho scaricato i vari jdbc
per oracle (classes12.zip)
Così usando WSAD ho creato una classe di prova
import java.sql.*;
import oracle.jdbc.driver.OracleDriver;
public class ProvaJDBC {
	public static void main(String[] args) throws SQLException{
		DriverManager.registerDriver(new OracleDriver());
		Connection conn =
DriverManager.getConnection("jdbc:oracle:oci8:@miodb","user","pass");
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery("SELECT 'prova' FROM dual");
		while(rs.next()) System.out.println(rs.getString(1));
		rs.close();
		stmt.close();
		conn.close();
	}
}
E ho referenziato il file di librerie per accedere ad oracle con una
variabile di WSAD che ho inserito nel progetto.
Eseguendolo dall'ide funziona alla perfezione.
Così ho usato la funzionalità apposita per generare il file .jar
ottenentdo una struttura come la seguente
C:\Documents and Settings\...\export-java>dir
..
05/03/2004  14:09       <DIR>          .
05/03/2004  14:09       <DIR>          ..
05/03/2004  11:28            1.207.068 classes12.zip
05/03/2004  13:58                1.102 ProvaJDBC.jar
               2 File(s)      1.208.170 bytes
               2 Dir(s)  11.188.891.648 bytes free
poi provo ad eseguire il test ottenendo il senguente errore
C:\Documents and Settings\...\export-java>java -cp classes12.zip -ja
r ProvaJDBC
Exception in thread "main" java.util.zip.ZipException: The system cannot
find th
e file specified
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(Unknown Source)
        at java.util.jar.JarFile.<init>(Unknown Source)
        at java.util.jar.JarFile.<init>(Unknown Source)
Ho letto il ng e pare che ci sia la necessità di installare l'intera SDK
per utilizzare gli zip nel lancio dei jar. Mi pare un po' strano.
Infatti lo sto eseguendo su di una macchina con solo jre come qui di seguito
C:\Documents and Settings\...\export-java>java -version
java version "1.3.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)
Sapete darmi una mano?
Non vorrei dover installare l'intera SDK su di un server per eseguire un
cavolo di file zip.
Ciao e grazie D.
Inviato da 
www.mynewsgate.net

Ciao, getting_out!
Il giorno 05/03/2004 alle ore 14:22 hai scritto:
 go> C:\Documents and Settings\...\export-java>java -cp classes12.zip -ja
 go> r ProvaJDBC
Se non e' un errore di trascrizione manca il .jar nel nome del file
(ProvaJDBC.jar).
 go> Exception in thread "main" java.util.zip.ZipException: The system
 go> cannot find th
 go> e file specified
 go>         at java.util.zip.ZipFile.open(Native Method)
Comunque non riesce ad aprire un file, qualcosa non ha il nome che dovrebbe
avere (certo che avrebbero anche potuto fare lo sforzo di scrivere cosa
tenta di aprire).
Bye
-- 
Marco Maccaferri
MaccaSoft - 
http://www.maccasoft.com

         at java.util.jar.JarFile.<init>(Unknown Source)
Risolto!
C:\Documents and Settings\ee00138\Desktop\export-java>java -cp
classes12.jar;Pr
vaJDBC.jar ProvaJDBC
prova
mi piacerebbe capire cosa combina WSAD con i JAR. vabbè, l'importante è
che vada!


 
Prova: C:\Documents and Settings\...\export-java>java -cp classes12.zip 
-jar ProvaJDBC.jar
Paolo.

ah, mi sono dimenticato, ho dovuto rinominare il .zip in .jar :)
Ciao D.
Inviato da 
www.mynewsgate.net

 -jar ProvaJDBC.jar
Neanche così funziona.
Ho intanto scoperto che l'errore è un po' fuorviante. Infatti il problema
era che il Manifest File del jar non aveva dentro nessuna classe
eseguibile (con main). Ho rifatto l'export ed ecco che l'errore cambia
C:\Documents and Settings\...\export-java>java -cp classes12.zip -ja
r ProvaJDBC.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
oracle/jdbc/driver/Or
acleDriver
        at ProvaJDBC.main(ProvaJDBC.java:24)
Rimane che con il metodo che ho postato poco fa funziona bene!
Adesso provo ad indagare ulteriormente.
