elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10
81  Programación / Java / Re: Filtrar archivos dentro de un jar ¿? en: 22 Agosto 2009, 20:21 pm
Holas, he encontrado esto. Me parece que lo que hace es listar los archivos contenidos en un jar. Espero que te sirva. Luego supongo que lo podrás filtrar por extensión como estas haciendo.

Código
  1. import java.util.jar.*;
  2. import java.util.*;
  3. import java.io.*;
  4.  
  5. public class PackageUtils {
  6.  
  7. private static boolean debug = true;
  8.  
  9. public static List getClasseNamesInPackage
  10.     (String jarName, String packageName){
  11.   ArrayList classes = new ArrayList ();
  12.  
  13.   packageName = packageName.replaceAll("\\." , "/");
  14.   if (debug) System.out.println
  15.        ("Jar " + jarName + " looking for " + packageName);
  16.   try{
  17.     JarInputStream jarFile = new JarInputStream
  18.        (new FileInputStream (jarName));
  19.     JarEntry jarEntry;
  20.  
  21.     while(true) {
  22.       jarEntry=jarFile.getNextJarEntry ();
  23.       if(jarEntry == null){
  24.         break;
  25.       }
  26.       if((jarEntry.getName ().startsWith (packageName)) &&
  27.            (jarEntry.getName ().endsWith (".class")) ) {
  28.         if (debug) System.out.println
  29.           ("Found " + jarEntry.getName().replaceAll("/", "\\."));
  30.         classes.add (jarEntry.getName().replaceAll("/", "\\."));
  31.       }
  32.     }
  33.   }
  34.   catch( Exception e){
  35.     e.printStackTrace ();
  36.   }
  37.   return classes;
  38. }
  39.  
  40. /**
  41. *
  42. */
  43.  public static void main (String[] args){
  44.   List list =  PackageUtils.getClasseNamesInPackage
  45.        ("C:/j2sdk1.4.1_02/lib/mail.jar", "com.sun.mail.handlers");
  46.   System.out.println(list);
  47.   /*
  48.    output :
  49.    
  50.     Jar C:/j2sdk1.4.1_02/lib/mail.jar looking for com/sun/mail/handlers
  51.     Found com.sun.mail.handlers.text_html.class
  52.     Found com.sun.mail.handlers.text_plain.class
  53.     Found com.sun.mail.handlers.text_xml.class
  54.     Found com.sun.mail.handlers.image_gif.class
  55.     Found com.sun.mail.handlers.image_jpeg.class
  56.     Found com.sun.mail.handlers.multipart_mixed.class
  57.     Found com.sun.mail.handlers.message_rfc822.class
  58.     [com.sun.mail.handlers.text_html.class,
  59.     com.sun.mail.handlers.text_xml.class,  com
  60.     .sun.mail.handlers.image_jpeg.class,
  61.     , com.sun.mail.handlers.message_rfc822.class]
  62.    
  63.    */
  64.  }
  65. }
  66.  
  67.  
82  Programación / Java / obtener el espacio libre del disco duro donde se ejecuta la aplicación en: 21 Agosto 2009, 21:18 pm
¿Cómo se puede obtener el espacio libre del disco duro donde se ejecuta la aplicación?

He probado con esto pero nosé si es correcto:

Código
  1. package memoria;
  2. import java.lang.management.MemoryMXBean;
  3. import java.lang.management.ManagementFactory;
  4.  
  5. public class Main {
  6.  
  7.    public static void main(String[] args) {
  8.        Main apli = new Main();
  9.        apli.estadoMemoria();
  10.    }
  11.  
  12.    public void estadoMemoria() {
  13.        Runtime runtime = Runtime.getRuntime();
  14.  
  15.        long freeMemory = runtime.freeMemory();
  16.        long totalMemory = runtime.totalMemory();
  17.        long maxMemory = runtime.maxMemory();
  18.  
  19.        System.out.println("Max   Memory  :" + (maxMemory / 1024.0) + " KB");
  20.        System.out.println("Total Memory  :" + (totalMemory / 1024.0) + " KB");
  21.        System.out.println("Free  Memory  :" + (freeMemory / 1024.0) + " KB");
  22.        System.out.println("Used  Memory  :" + (totalMemory / 1024.0 - freeMemory / 1024.0) + " KB");
  23.  
  24.        System.out.println("         ===============         ");
  25.        MemoryMXBean mx = ManagementFactory.getMemoryMXBean();
  26.  
  27.        long initMemory = mx.getHeapMemoryUsage().getInit() + mx.getNonHeapMemoryUsage().getInit();
  28.        long usedMemory = mx.getHeapMemoryUsage().getUsed() + mx.getNonHeapMemoryUsage().getUsed();
  29.        long committedMemory = mx.getHeapMemoryUsage().getCommitted() + mx.getNonHeapMemoryUsage().getCommitted();
  30.        long _maxMemory = mx.getHeapMemoryUsage().getMax() + mx.getNonHeapMemoryUsage().getMax();
  31.  
  32.        System.out.println("Max       memory:" + (_maxMemory / 1024.0) + " KB");
  33.        System.out.println("Committed memory:" + (committedMemory / 1024.0) + " KB");
  34.        System.out.println("Init      memory:" + (initMemory / 1024.0) + " KB");
  35.        System.out.println("Used      memory:" + (usedMemory / 1024.0) + " KB");
  36.  
  37.    }
  38. }
  39.  

Me ha reportado estos datos:

Citar
Max   Memory  :499008.0 KB
Total Memory  :32384.0 KB
Free  Memory  :32167.6015625 KB
Used  Memory  :216.3984375 KB
         ===============        
Max       memory:679232.0 KB
Committed memory:51072.0 KB
Init      memory:51067.0 KB
Used      memory:2695.0234375 KB

Cuantos gigas libres tengo en el disco duro? con el editor de particiones e mirado y tengo 49.54 GiB y según este programa dice... "Free Memory :32167.6015625 KB"


Código corregido:
Código
  1. package memoria;
  2. import java.lang.management.MemoryMXBean;
  3. import java.lang.management.ManagementFactory;
  4. import java.io.File;
  5.  
  6. public class Main {
  7.  
  8.    public static void main(String[] args) {
  9.        Main apli = new Main();
  10.        apli.estadoMemoriaHeap();
  11.        apli.estadoMemoriaDiscoDuro();
  12.    }
  13.  
  14.    //estadisticas de la memoria del heap
  15.    public void estadoMemoriaHeap() {
  16.        Runtime runtime = Runtime.getRuntime();
  17.  
  18.        long freeMemory = runtime.freeMemory();
  19.        long totalMemory = runtime.totalMemory();
  20.        long maxMemory = runtime.maxMemory();
  21.  
  22.        System.out.println("\nEstadoMemoriaHeap():");
  23.        System.out.println("Max   Memory  :" + (maxMemory / 1024.0) + " KB");
  24.        System.out.println("Total Memory  :" + (totalMemory / 1024.0) + " KB");
  25.        System.out.println("Free  Memory  :" + (freeMemory / 1024.0) + " KB");
  26.        System.out.println("Used  Memory  :" + (totalMemory / 1024.0 - freeMemory / 1024.0) + " KB");
  27.  
  28.        System.out.println("         ===============         ");
  29.        MemoryMXBean mx = ManagementFactory.getMemoryMXBean();
  30.  
  31.        long initMemory = mx.getHeapMemoryUsage().getInit() + mx.getNonHeapMemoryUsage().getInit();
  32.        long usedMemory = mx.getHeapMemoryUsage().getUsed() + mx.getNonHeapMemoryUsage().getUsed();
  33.        long committedMemory = mx.getHeapMemoryUsage().getCommitted() + mx.getNonHeapMemoryUsage().getCommitted();
  34.        long _maxMemory = mx.getHeapMemoryUsage().getMax() + mx.getNonHeapMemoryUsage().getMax();
  35.  
  36.        System.out.println("Max       memory:" + (_maxMemory / 1024.0) + " KB");
  37.        System.out.println("Committed memory:" + (committedMemory / 1024.0) + " KB");
  38.        System.out.println("Init      memory:" + (initMemory / 1024.0) + " KB");
  39.        System.out.println("Used      memory:" + (usedMemory / 1024.0) + " KB");
  40.  
  41.    }
  42.    //estadisticas de la memoria del disco duro
  43.    public void estadoMemoriaDiscoDuro(){
  44.  
  45.        File file = new File("/");
  46.        long totalSpace = file.getTotalSpace();
  47.        long freeSpace = file.getFreeSpace();
  48.        long UsableSpace = file.getUsableSpace();
  49.  
  50.        System.out.println("\nEstadoMemoriaDiscoDuro():");
  51.        System.out.println("Total Space  :" + (totalSpace / 1024.0) + " KB");
  52.        System.out.println("Free  Space  :" + (freeSpace / 1024.0) + " KB");
  53.        System.out.println("Usable  Space  :" + (UsableSpace / 1024.0) + " KB");
  54.    }
  55. }
  56.  

El método getUsableSpace() no es muy aproximado, mejor hacer la resta como dice Darhius.

Gracias por contestar a todos  ;-)
83  Programación / Java / Re: ayuda en: 13 Agosto 2009, 01:08 am
Tron... te falta alguna "h" y el nombre del método.

Citar
public class NewClass{
 
 static FileOutputStream istro;
 public static final int longLinea=81;
 
 public static void (String args[]) trows IOException {
 byte nombre[]=new byte[longLinea];

se escribe así:  ;D

 
Código
  1.  
  2. public class NewClass{
  3.  
  4. static FileOutputStream istro;
  5. public static final int longLinea=81;
  6.  
  7. public static void caca(String args[]) throws IOException {
  8. byte nombre[]=new byte[longLinea];
  9. byte apellidos[]=new byte[longLinea];

Añadele también el main para que la puedas comprobar. Suerte
84  Programación / Java / Re: ayuda con este ejercicio en: 13 Agosto 2009, 00:14 am
Hola, pon los imports y el código entre sus etiquetas de codigo por favor.
Explica que te ocurre vaquero jeje  ::)
85  Programación / Java / Re: que objeto utilizo para la ventana de configuración de una aplicación? JDialog? en: 13 Agosto 2009, 00:08 am
Gracias.

He mirado y con el netbeans viene uno que se llama "OK / CANCEL dialog sample form" que sale cuando le das boton derecho New, Categories--> Swing GUI Forms

Con ese si lo modifico creo que me servirá, extiende de JDialog.
86  Programación / Java / que objeto utilizo para la ventana de configuración de una aplicación? JDialog? en: 12 Agosto 2009, 20:30 pm
Lo que quiero hacer es que cuando pulses en un JItem de un JMenu se me abra una ventanita con las opciones de configuración de la aplicación y ésta no pueda utilizarse hasta que no se cierre la ventanita de configuración.
El caso... es que nosé que objeto debo utilizar... puede ser un JDialog? :silbar:
87  Programación / Java / Re: limitar numero de lineas que caben en un JTextPane, como si fuese una shell en: 12 Agosto 2009, 02:05 am
ahm gracias, pero he cambiado ya el jTextPane por el jTextArea y funciona bien. Ahora el problema que le veo es que no debe de ser un objeto sincronizado entonces un proceso escribe en un trozo de la línea y otro en otro trozo (según duerman los procesos o despierten). Pero vaya eso sólo pasa ha veces y tapoco es muy importante ahora mismo.
Esto con el jTextPane no me pasaba.

Bueno... creo que se podría solucionar extendiendo de la clase jTextArea y sobreescribiendo el método para escribir poniendole synchronized. Así no se pisaran los procesos.
88  Programación / Java / Re: limitar numero de lineas que caben en un JTextPane, como si fuese una shell en: 11 Agosto 2009, 18:57 pm
Si lo que quiero hacer es muy parecido ha eso, unicamente le puse colores y le cambié el tamaño de la letra y la fuente.
¿Con el jTextArea no me ocurrirá los mismo? es que cambias el puntero cuando un proceso escribe no... y eso es quizas lo que le ocurre... que si seleccionas al mismo tiempo...
¿Tienes ese ejemplo por ahi para probar?
89  Programación / Java / Re: limitar numero de lineas que caben en un JTextPane, como si fuese una shell en: 11 Agosto 2009, 17:58 pm
Citar
miJTextPane.setText("Hola foro.elhacker.net");
miJTextPane.setDisabledTextColor(new Color(0, 0, 0));
miJTextPane.setEnabled(false);

Eso me vendría genial si pudiese cambiarle el fondo también. Ya que me evita que se bloquee la aplicación.

Lo que hace el programa es que varios hilos van escribiendo en la pantalla (jTextPane). Pero como hagas click en el jTextPane la hemos cagao...

mmm igual podía hacer que cuando llegue a tener un número determinado de filas, que elimine la primera.
90  Programación / Java / limitar numero de lineas que caben en un JTextPane, como si fuese una shell en: 11 Agosto 2009, 16:20 pm
Sabeis cómo puedo limitar el número de lineas que se pueden ir escribiendo en un JTextPane como si se tratase de una Shell?

Un problema que tengo también es que mi programa va escribiendo en el JTextPane constantemente pero cuando seleccionas algo de texto dentro mientras esta funcionando se queda colgao.
¿Sabeis que puedo hacer?

He probado así --> miJTextPane.setEnabled(false);

Funciona bien pero al estar deshabilitado se ve el texto en grises y el color de fondo en blanco y pierde la gracia. Si tuviese los colores y funcionase igual estaría bien.
Páginas: 1 2 3 4 5 6 7 8 [9] 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines