URL: https://linuxfr.org/forums/programmation-java/posts/petit-soucis-%C3%A0-la-c-mais-qui-fait-ch Title: Petit soucis à la c**, mais qui fait ch*** Authors: Yami Date: 2007年05月18日T15:01:46+02:00 Tags: fedora Score: 0 Salut à tous, J'expose le contexte : je veux executer une commande, récupérer le contenu, et mettre à jour une base de données. Distrib : Fedora Core 6, en ssh. Java : java version "1.4.2" gij (GNU libgcj) version 4.1.1 20070105 (Red Hat 4.1.1-51) - jrefactory 2.8.6-9 script : package conso; import java.sql.*; import java.io.*; /** £spaces£ £/spaces£* @author Yami £spaces£ £/spaces£*/ public class Main { £spaces£ £/spaces£static Main conso = null; £spaces£ £/spaces£dbconnect db = new dbconnect(); £spaces£ £/spaces£String driver = dbconnect.getDriver(); £spaces£ £/spaces£String host = dbconnect.getHost(); £spaces£ £/spaces£String user = dbconnect.getUser(); £spaces£ £/spaces£String pass = dbconnect.getPassword(); £spaces£ £/spaces£Connection conn = null; Statement st = null; ResultSet rs = null; £spaces£ £/spaces£String id = new String(); £spaces£ £/spaces£String ip = new String(); £spaces£ £/spaces£String port = new String(); £spaces£ £/spaces£String cmd = new String(); £spaces£ £/spaces£String result = new String(); £spaces£ £/spaces£public Main() { £spaces£ £/spaces£//séléction des serveurs £spaces£ £/spaces£try { £spaces£ £/spaces£Class.forName(driver); £spaces£ £/spaces£conn = DriverManager.getConnection(host, user, pass); £spaces£ £/spaces£st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); £spaces£ £/spaces£rs = st.executeQuery("SELECT ...."); £spaces£ £/spaces£rs.first(); £spaces£ £/spaces£do { £spaces£ £/spaces£//execution de la commande £spaces£ £/spaces£id = rs.getString("id"); £spaces£ £/spaces£cmd = "ps ax -o\"%C %z %a\" |grep hlds_i686 |grep " + rs.getString("ip") + " |grep " + rs.getString("port") + " |grep -v grep"; £spaces£ £/spaces£try { £spaces£ £/spaces£Runtime r = Runtime.getRuntime(); £spaces£ £/spaces£Process p = r.exec(cmd); £spaces£ £/spaces£String s =null; £spaces£ £/spaces£BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); £spaces£ £/spaces£StringBuffer buffer = new StringBuffer(); £spaces£ £/spaces£while ((s = reader.readLine()) != null) { £spaces£ £/spaces£buffer.append(s); £spaces£ £/spaces£} £spaces£ £/spaces£result = buffer.toString(); £spaces£ £/spaces£}catch(Exception e) {System.out.println("erreur d'execution " + cmd + e.toString());} £spaces£ £/spaces£//Mise en place du résultat dans un tableau sans espaces £spaces£ £/spaces£String[] array = result.split(" "); £spaces£ £/spaces£st.execute("INSERT ..."); £spaces£ £/spaces£}while(rs.next()); £spaces£ £/spaces£} £spaces£ £/spaces£catch (ClassNotFoundException ex) { System.out.println("Erreur Driver"); } £spaces£ £/spaces£catch(SQLException s) {System.out.println("Erreur SQL : "+s.getErrorCode()+" "+s.getMessage()); £spaces£ £/spaces£} £spaces£ £/spaces£} et voilà, après un javac Main.java dbconnect.java , le problème se situe à l'execution : java Main.java j'ai cette erreur :
java Main.java dbconnect.java Exception in thread "main" java.lang.NoClassDefFoundError: Main.java at gnu.java.lang.MainThread.run(libgcj.so.7rh) Caused by: java.lang.ClassNotFoundException: Main.java not found in gnu.gcj.runt ime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoade r{urls=[], parent=null}} at java.net.URLClassLoader.findClass(libgcj.so.7rh) at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh) at java.lang.ClassLoader.loadClass(libgcj.so.7rh) at java.lang.ClassLoader.loadClass(libgcj.so.7rh) at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Je désepères, aucune de mes recherches n'a abouti peut-être que quelqu'un aurait une idée. Et au passage, ca n'a rien à voir avec Java, mais si quelqu'un connait la commande unix permettant d'afficher la bande passante utilisée par un processus.

AltStyle によって変換されたページ (->オリジナル) /