Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - kinos

#1
Hola:

Tengo un ordenador con linux en una red local. Todos los ordenadores de la red local pueden acceder por ssh al servidor.
El problema esta cuando intento acceder mediante la ip externa, me indica cada vez:
"ssh: connect to host x.x.x.x port 2222: Connection time out"

En el router el puerto 2222 apunta al 22 de la maquina 10.1.1.80 por ejemplo.
He comprobado que el puerto esté abierto, lo está.

¿qué es lo que está mal?
#2
Hola:

Estoy intentando añadir la librería twitter4j al NetBeans pero algo falla. He hecho lo siguiente:


  • Voy a la pagina-> http://twitter4j.org/
  • Descargo el archivo-> twitter4j-2.2.1.zip
  • Descomprimo el archivo.
  • Abro NetBeans. Voy a Herramientas->Bibliotecas
  • Creo la nueva biblioteca Twitter4j.
  • En la pestaña Ruta de clases pulsamos el botón "Agregar archivo Jar/Carpeta" y añado el archivo que esta en la carpeta descomprimida  "twitter4j-2.2.1/twitter4j-core/twitter4j-core-2.2.1-sources.jar"

Una vez hecho esto añado la biblioteca a mi proyecto:


  • En la ventana de Proyectos, hacemos clic derecho sobre el proyecto->Bibliotecas->Añadir biblioteca

Ahora cuando quiero escribir código, escribo el import "import twitter4j.Twitter;" en el principio y no me identifica la librería. ¿Porque no la encuentra?
#3
Hola:

Tengo un servidor web en una adsl con ip dinamica y lo tengo mediante el servicio de No-ip.com

La cuestión es que me gustaría contratar una ip fija pero nose como tendría que configurar el servicio dns porque al no utilizar el servicio de No-ip.com nose que dns tendría que poner.

¿qué es lo que tendría que hacer?

Gracias.
#4
Hola:

   ¿Sabéis cómo configurar todos los mensajes de error del apache de forma genérica? Escribiendo unas cabeceras o un pie... Es decir... sin tener que hacer esto para cada uno(editar una pagina):

ErrorDocument 404 /error404.php

http://httpd.apache.org/docs/2.0/mod/core.html#errordocument

   O donde esta el código fuente que genera dichos errores...

Saludos
#5
PHP / ¿cómo evitar inyección sql en php?
8 Octubre 2010, 23:35 PM
Buenas:

Llevo varios días leyendo sobre cómo evitar inyección sql en php y hay mucha información y cada cual hace lo que le parece aplicando lo que cree conveniente. Entre otras cosas esto:


  • Filtrar con expresiones regulares.
  • Filtrar palabras clave como AND, OR, WHERE, SELECT, DELETE, etc..
  • Reemplazar caracteres del tipo ', ", *, ;, etc...
  • Verificar la longitud de las variables.
  • Utilizar Stored Procedure (no se porque es mas seguro...)
  • Utilizar funciones del tipo addslashes().
  • Limitar permisos del usuario en la base de datos.

Se que en Java, por ejemplo tenemos los PreparedStatement que supuestamente te evitan ese tipo de problemas y son bastante cómodos de utilizar.

También he visto en el foro esta función:

Código (php) [Seleccionar]
<?php
function addslashes__recursive($var){
if (!
is_array($var))
return 
addslashes($var);
$new_var = array();
foreach (
$var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return 
$new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>


http://foro.elhacker.net/php/pequenos_trucos_en_php-t152467.0.html

Después de haber visto tantas cosas no tengo nada claro que proceso seguir. ¿Vosotros cómo hacéis? ¿Tenéis una formula mágica :P 100% segura?
#6
Scripting / eliminar directorios antiguos en linux
25 Septiembre 2010, 04:54 AM
Holas, cómo puedo hacer esto?

   Dado un número de días (30 dias) y un directorio base (/home/usuario/Escritorio/DirBase/) elimina todos los subdirectorios (no es necesario que sea recursivo para sus subdirectorios) con antigüedad mayor a la indicada.

   Tenemos:

   /home/usuario/Escritorio/DirBase/

   De ahí cuelgan varios directorios:

    /home/usuario/Escritorio/DirBase/a (supera los 30 días)
    /home/usuario/Escritorio/DirBase/b (no llega a los 30 días)
    /home/usuario/Escritorio/DirBase/b/b1 (no debe entrar aquí)
    /home/usuario/Escritorio/DirBase/b/b2 (no debe entrar aquí)
    /home/usuario/Escritorio/DirBase/c (supera los 30 días)

   Ejecutamos el comando y debería quedar lo siguiente:

    /home/usuario/Escritorio/DirBase/b
    /home/usuario/Escritorio/DirBase/b/b1
    /home/usuario/Escritorio/DirBase/b/b2
   
   He probado con esto, que es lo que utilizo para eliminar archivos antiguos
pero me ha eliminado también el padre y no se muy bien que hace:

/usr/bin/find /home/usuario/Escritorio/DirBase/ -maxdepth 1 -mtime +30 -type d -exec rm -f {} \;
#7
Buenas:

   ¿Cómo puedo hacer una expresión regular para que me indique si $palabra pertenece al grupo de palabras admitidas? Es que esta expresión permite palabras como "netttt", "comfjhg", "orgreja" y estas no deberían ser aceptadas.

Código (php) [Seleccionar]

   function es_palabra_valida($palabra) {
                    if (ereg("(com|net|org)", $palabra)) {
                        echo "La palabra $palabra es correcta<br>";
                        return true;
                    } else {
                        echo "La palabra $palabra no es válida<br>";
                        return false;
                    }
                }
#8
Buenas:

   Me pregunto como puedo calcular un número aleatorio de 1 a n pero la probabilidad de obtener un 2 es mayor de obtener un 1. Es decir, según va creciendo la serie la probabilidad aumenta.

#9
Hola:

Tengo una aplicación jDesktopApplication hecha con netbeans. Antes se iniciaba según la dimensionabas en el IDE pero por lo que sea se me ha quedado con unas dimensiones determinadas un tanto pequeñas y siempre se inicia igual aunque la redimensiones en el IDE.

Código (java) [Seleccionar]

public class DesktopApplicationView extends FrameView {

    public DesktopApplicationView(SingleFrameApplication app) {
        super(app);
        initComponents();
...


He intentado redimensionarla después del initComponents(); pero no consigo nada.
Si la redimensiono fuera del constructor, por ejemplo desde un boton o algo si que se expande. Pero lo que necesito es que se inicie con unas dimensiones desde el principio.

¿Cómo puedo hacerlo?
#10
Estoy tratando de guardar un archivo por cada primary key de una tabla de la base de datos en directorios. Es decir:

primary key 0: /base/0/file
primary key -34234: /base/-34234/file
primary key 438974: /base/438974/file

La cuestión es, si hay algún sistema de ficheros en linux que pueda soportar tal cantidad de carpetas(4.294.967.294) y si esta es la mejor opción de hacer lo que estoy haciendo.

Gracias.
#11
Hola buenas:

   Me gustaría saber cual es la mejor opción para guardar url's en una tabla de mysql.

   Con varchar(255) esta muy bien pero es de longitud muy escasa. Estoy utilizando además un campo de tipo entero que contiene el codigo hash de la url para agilizar.

   Otra opción sería usar Text. Pero... ¿se puede usar Unique e Index para este tipo de dato?
¿Podría usar un index compuesto por el codigo hash y la variable de tipo Text?
¿Mysql permite varchar mayor de 255?

:huh:
#12
Hola buenas:

Tengo dos tablas llamadas "empresas" y otra "clientes". Cuando se produce una venta se introduce una fila en la tabla "ventas" que tiene como índices "idempresas" e "idclientes".
El problema es que cuando quiero borrar una empresa no me elimina las filas de la tabla ventas.
Qué estoy haciendo mal? no sé si estoy poniendo bien delete on cascade... o que ocurre.

Aquí esta el código:

Código (sql) [Seleccionar]

-- -----------------------------------------------------
-- Table `bdd`.`empresas`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `bdd`.`empresas` ;

CREATE  TABLE IF NOT EXISTS `bdd`.`empresas` (
  `idempresas` INT NOT NULL AUTO_INCREMENT ,
  PRIMARY KEY (`idempresas`) ,
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;

-- -----------------------------------------------------
-- Table `bdd`.`clientes`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `bdd`.`clientes` ;

CREATE  TABLE IF NOT EXISTS `bdd`.`clientes` (
  `idclientes` INT NOT NULL AUTO_INCREMENT ,
  PRIMARY KEY (`idclientes`) ,
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;

-- -----------------------------------------------------
-- Table `bdd`.`ventas`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `bdd`.`ventas` ;

CREATE  TABLE IF NOT EXISTS `bdd`.`ventas` (
  `empresas_idempresas` INT NOT NULL ,
  `clientes_idclientes` INT NOT NULL ,
  `venta` INT NOT NULL ,
  PRIMARY KEY (`empresas_idempresas`, `clientes_idclientes`) ,
  CONSTRAINT `fk_empresas_has_ventas`
    FOREIGN KEY (`empresas_idempresas` )
    REFERENCES `bdd`.`empresas` (`idempresas` )
    ON DELETE CASCADE
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_empresas_has_ventas2`
    FOREIGN KEY (`clientes_idclientes` )
    REFERENCES `bdd`.`clientes` (`idclientes` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;

CREATE INDEX `fk_empresas_has_ventas` ON `bdd`.`ventas` (`empresas_idempresas` ASC) ;

CREATE INDEX `fk_empresas_has_ventas2` ON `bdd`.`ventas` (`clientes_idclientes` ASC) ;
#13
Java / cómo descargar una url?
22 Junio 2010, 21:37 PM
Hola:

   Estoy intentando descargar el código fuente de una url pero no me deja me sale este error.

Citarjava.io.IOException: Server returned HTTP response code: 403 for URL:......

El problema es que debe de usar cookies o algo por seguridad. Además no es una página estática, sino que es así http://www.dominioddd.com/lalaala?p=1&z=2

¿cómo podría hacerlo? tendría que engañarlo poniendo headers del mozilla para que crea que es un navegador o algo? tendría que enviarle alguna cookie... algun valor...?
#14
Java / ¿cómo implementar un progressBar?
6 Junio 2010, 23:34 PM
Buenas.

Estoy utilizando un jInternalFrame y quiero que cuando le das a la X de cerrar te salga un jDialog y te pregunta si quieres guardar y tal. Una vez que pulsas si o no, si pulsas "si" me debe lanzar una ventanita con un progressBar (JDialog). Mientras, va guardando lo que tenga que guardar... y una vez terminado de guardar se cierra el jInternaFrame.

El problema es que no consigo que me muestre el contenido del frame del progressBar (jDialog). Me sale el marco pero no lo que contiene, no sale ni el jTextArea ni el jProgressBar. Si lo pongo como modal, a true, si que se muestra pero no puedo guardar las cosas hasta que no lo cierro.

He leído que hay que iniciarlo con algo de Event dispatching thread pero no consigo nada.

Me podéis explicar algo?
#15
Hola:

  ¿Cómo puedo detectar cuando se cierra un JInternalFrame con la X de arriba?

  Quiero hacer lo típico de cuando cierras un documento que te pregunte si quieres guardar los cambios, ¿esa ventanita sería un jDialog?
#16
Hola, estoy buscando una forma de guardar muchos strings y a la hora de insertar uno nuevo debo saber si ya está dentro. Debe ser rápido. Los string pueden tener una longitud de hasta 256 caracteres.

   Utilizaba un hashSet pero cuando son muchisimos el Heap de java dirá que hay un stack overflow.

   Por esa razón necesito guardarlo en un archivo o varios, hacer una combinación de estructura de datos con fichero o algo similar que sea rápido.

Había pensado en guardar el código hash del string por un lado y el string en otro. A la hora de insertar un nuevo string generar un hash, compararlo con los hash que hay y si no está se inserta, en caso contrario no lo inserta.

¿qué puedo utilizar?
#17
Mediante la clase URL u otra, ¿hay alguna forma de saber... que si yo solicito una página www.dominio.es me esta devolviendo el contenido de www.domino.com?

En el firefox cuando escribo el dominio "www.dominio.es" me devuelve o se redirecciona a "www.dominio.com". Pero en java ¿cómo puedo saber eso?
#18
Hola:

Necesito un parser de html que me extraiga enlaces de las etiquetas <a href="...
debe servir también para enlaces relativos (que generé la ruta correcta en función de la pagina actual)-> ./directorio ../directorio //directorio etc...

La página de la cual habría que extraer la información digamos que ya está capturada, entonces con pasarla mediante un string u otra estructura al parser ya está.

Intenté utilizar algunas clases del proyecto nutch http://lucene.apache.org/nutch/ pero no se cuales me podrían servir ni cómo podría utilizarlas.

También he mirado codigo de heritrix http://crawler.archive.org/ y de otros pero nose por donde tirar. Ayudaaa  :huh:
#19
Hola:

He instalado apache, php-mysql y esas cosas en linux y tengo algun problemilla con easy gallery http://wingnut.freitagmorgen.de/

La cuestión es que lo pongo en el directorio correspondiente de la web y la primera vez que lo ejecuto (EasyGallery.php) debe crear los directorios y las thumnails correspondientes. Pero me indica un error:

Warning: mkdir() [function.mkdir]: Permision denied in /home/lalalalala/www/ffkgkg....
#20
Sabeis como ocultar una aplicación y que no salga en la barra donde tenemos todas las aplicaciones abiertas?
Se trata de una aplicación de escritorio de Netbeans.
Se que se puede colocar un icono en la barra de tareas junto al reloj, como el icono del messenger etc...
Similar a lo que sale en este enlace http://blogs.sun.com/CoreJavaTechTips/entry/getting_to_know_system_tray
Pero cómo haces para ocultar la aplicación y que no te salga abajo como abierta??  :o

La intención es que sea similar al icono de emule, messenger, etc...
#21
Estoy haciendo un proyecto de los de java Desktop Application del Netbeans y... por ejemplo, en los menus que salen predefinidos arriba, pulsas sobre el de Help -> about, se abre el correspondiente JDialog y al cerrarlo, en la ventanita del Output salta esta excepcion (la aplicación sigue funcionando normal):


Exception occurred during event dispatching:
java.lang.Error: java.lang.reflect.InvocationTargetException
       at org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)
       at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)
       at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
       at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
       at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
       at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
       at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
       at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
...
.... etc, etc...


¿Por qué sale esto?  :rolleyes:
#22
Hola:

Necesito utilizar una estructura de datos que tenga una capacidad máxima de 70.000 objetos por ejemplo.
La inserción debe ser rápida.
La consulta debe ser rápida.
La eliminación también.
Cada posición debe ser accesible (no pilas).

Había pensado en utilizar hashSet pero he leido que es deprecated  :( así que nose cual será la mejor opción. Vector? ArrayList? hashSet? etc...
#23
Java / como eliminar una linea de un JTextArea ?
2 Noviembre 2009, 22:38 PM
Hola.

Sabeis como puedo eliminar una línea de un JTextArea?

Me imagino que será con:

getDocument().remove(posicionInicial, posicionFinal);

Pero.. como puedo saber el comienzo y el final de una línea? o hay alguna forma más sencilla?
#24
Stoy hecho un lio...  :o

   He hecho una aplicacion de escritorio con Netbeans. Le he puesto un splashScreen para que salga una imagen mientras se va cargando.
   La duda es, que proceso debo seguir para ir cargando la aplicación, cargar los objetos y demás que requieran mucho tiempo. Entonces cuando ya se haya concluido pasarlos de alguna forma a la parte grafica. Se lanza con launch(DesktopApplication.class, args); y en este punto es cuando debería desaparecer el splash.

Esta es la estructura que tiene mas o menos:

Código (java) [Seleccionar]

package desktopapplication2;

public class DesktopApplication2 extends SingleFrameApplication {

    @Override protected void startup() {
        show(new DesktopApplication2View(this));
    }

    @Override protected void configureWindow(java.awt.Window root) {
    }

    public static DesktopApplication2 getApplication() {
        return Application.getInstance(DesktopApplication2.class);
    }

    public static void main(String[] args) {

        //se crea el splashScreen
        SplashScreen splashScreen = new SplashScreen();
        //lo mostramos
        splashScreen.mostrar();

        //cargamos los objetos pesados, su carga requiere mucho tiempo
        ObjetoA objeto = new ObjetoA();
        objeto.hacerTarea();

        //splashScreen desaparece
        splashScreen.desaparece();

        //*:) como paso los objetos a la aplicacion grafica-----------------------------------------

        launch(DesktopApplication2.class, args);
    }
}



DesktopApplication2View otra parte de codigo:
Código (java) [Seleccionar]

public class DesktopApplication2View extends FrameView {

    public DesktopApplication2View(SingleFrameApplication app) {
        super(app);

        initComponents();
        ....
        }

       ....

        @Override protected void finished() {
            setSaveNeeded(false);
        }
    }
}



Si hay que hacerlo de otra manera corregirme por favor.
#25
Hola:  :-\

  Estoy intentando cargar una imagen del directorio de los recursos para que luego no haya problemas con rutas erroneas y demás. El problema es que no puedo ponerle la ruta con estos metodos que utilizo porque me salta un error que dice "non-static method..."

Código (java) [Seleccionar]

public class DesktopApplication extends SingleFrameApplication {

   @Override
   protected void startup() {
       show(new DesktopApplicationView(this));
   }

   @Override
   protected void configureWindow(java.awt.Window root) {
   }

   public static DesktopApplication getApplication() {
       return Application.getInstance(DesktopApplication4.class);
   }

   public static void main(String[] args) {
   
   URL url = getClass().getResource("imagen.jpg");
    //error: non-static method getClass() cannot be referenced from a static context
   this.getClass().getResource("imagen.jpg");
    //error: non-static variable this cannot be referenced from a static context

    System.out.println(Toolkit.getDefaultToolkit().getImage("splash.jpg"));
    //null

    launch(DesktopApplication.class, args);
   }
}


Lo que hago es intentar ver con system.out.println() las rutas de la imagen pero o son null, o no puedo ejecutar por lo de non-static... dependiendo de la linea que ponga.
#26
Hola:

Estoy aprendiendo sobre la clase Logger para incorporarla a mi código y tengo varias dudas.

¿Los mensajes se escriben solo en pantalla?
¿van a parar a algún archivo en la estructura de directorios de mi programa? (esta es mi intención para mas tarde poder depurarlo si surgen errores)

Estoy siguiendo los pasos que se indican en estos apuntes:

http://www.lab.dit.upm.es/~lprg/material/apuntes/log/log.htm

Gracias.
#27
¿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 (java) [Seleccionar]

package memoria;
import java.lang.management.MemoryMXBean;
import java.lang.management.ManagementFactory;

public class Main {

   public static void main(String[] args) {
       Main apli = new Main();
       apli.estadoMemoria();
   }

   public void estadoMemoria() {
       Runtime runtime = Runtime.getRuntime();

       long freeMemory = runtime.freeMemory();
       long totalMemory = runtime.totalMemory();
       long maxMemory = runtime.maxMemory();

       System.out.println("Max   Memory  :" + (maxMemory / 1024.0) + " KB");
       System.out.println("Total Memory  :" + (totalMemory / 1024.0) + " KB");
       System.out.println("Free  Memory  :" + (freeMemory / 1024.0) + " KB");
       System.out.println("Used  Memory  :" + (totalMemory / 1024.0 - freeMemory / 1024.0) + " KB");
       
       System.out.println("         ===============         ");
       MemoryMXBean mx = ManagementFactory.getMemoryMXBean();

       long initMemory = mx.getHeapMemoryUsage().getInit() + mx.getNonHeapMemoryUsage().getInit();
       long usedMemory = mx.getHeapMemoryUsage().getUsed() + mx.getNonHeapMemoryUsage().getUsed();
       long committedMemory = mx.getHeapMemoryUsage().getCommitted() + mx.getNonHeapMemoryUsage().getCommitted();
       long _maxMemory = mx.getHeapMemoryUsage().getMax() + mx.getNonHeapMemoryUsage().getMax();

       System.out.println("Max       memory:" + (_maxMemory / 1024.0) + " KB");
       System.out.println("Committed memory:" + (committedMemory / 1024.0) + " KB");
       System.out.println("Init      memory:" + (initMemory / 1024.0) + " KB");
       System.out.println("Used      memory:" + (usedMemory / 1024.0) + " KB");

   }
}


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 (java) [Seleccionar]

package memoria;
import java.lang.management.MemoryMXBean;
import java.lang.management.ManagementFactory;
import java.io.File;

public class Main {

    public static void main(String[] args) {
        Main apli = new Main();
        apli.estadoMemoriaHeap();
        apli.estadoMemoriaDiscoDuro();
    }
   
    //estadisticas de la memoria del heap
    public void estadoMemoriaHeap() {
        Runtime runtime = Runtime.getRuntime();

        long freeMemory = runtime.freeMemory();
        long totalMemory = runtime.totalMemory();
        long maxMemory = runtime.maxMemory();
       
        System.out.println("\nEstadoMemoriaHeap():");
        System.out.println("Max   Memory  :" + (maxMemory / 1024.0) + " KB");
        System.out.println("Total Memory  :" + (totalMemory / 1024.0) + " KB");
        System.out.println("Free  Memory  :" + (freeMemory / 1024.0) + " KB");
        System.out.println("Used  Memory  :" + (totalMemory / 1024.0 - freeMemory / 1024.0) + " KB");
         
        System.out.println("         ===============         ");
        MemoryMXBean mx = ManagementFactory.getMemoryMXBean();

        long initMemory = mx.getHeapMemoryUsage().getInit() + mx.getNonHeapMemoryUsage().getInit();
        long usedMemory = mx.getHeapMemoryUsage().getUsed() + mx.getNonHeapMemoryUsage().getUsed();
        long committedMemory = mx.getHeapMemoryUsage().getCommitted() + mx.getNonHeapMemoryUsage().getCommitted();
        long _maxMemory = mx.getHeapMemoryUsage().getMax() + mx.getNonHeapMemoryUsage().getMax();

        System.out.println("Max       memory:" + (_maxMemory / 1024.0) + " KB");
        System.out.println("Committed memory:" + (committedMemory / 1024.0) + " KB");
        System.out.println("Init      memory:" + (initMemory / 1024.0) + " KB");
        System.out.println("Used      memory:" + (usedMemory / 1024.0) + " KB");

    }
    //estadisticas de la memoria del disco duro
    public void estadoMemoriaDiscoDuro(){
       
        File file = new File("/");
        long totalSpace = file.getTotalSpace();
        long freeSpace = file.getFreeSpace();
        long UsableSpace = file.getUsableSpace();
       
        System.out.println("\nEstadoMemoriaDiscoDuro():");
        System.out.println("Total Space  :" + (totalSpace / 1024.0) + " KB");
        System.out.println("Free  Space  :" + (freeSpace / 1024.0) + " KB");
        System.out.println("Usable  Space  :" + (UsableSpace / 1024.0) + " KB");
    }
}


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

Gracias por contestar a todos  ;-)
#28
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:
#29
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.
#30
La expresión regular para validar un email entero es: (comento que puede que no sea del todo correcta)

"[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$"

Esta puede tener algún fallo: "[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+"

También esta otra: [a-zA-Z0-9][a-zA-Z0-9_-]+[\\p{Punct}[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[\\{Punct}[a-zA-Z]+]+


También hay dos metodos para validar por separado, uno para la parte izquierda del email y otro para la derecha derecha del email.


Código (java) [Seleccionar]


import java.util.regex.*;
import java.util.StringTokenizer;

public class Main {

   public boolean validateEmail(String email) {
       
       Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$");//me gusta esta
       
       Matcher m = p.matcher(email);
       return m.matches();
   }

   public boolean validateLeftEmail(String emailLeft) {
       Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*");
       Matcher m = p.matcher(emailLeft);
       return m.matches();
   }

   public boolean validateRightEmail(String emailRight) {
       Pattern p = Pattern.compile("[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$");
       Matcher m = p.matcher(emailRight);
       return m.matches();

   }

   public static void main(String[] args) {
       Main miMain = new Main();
       System.out.println("*****************************validateEmail******************************************");
       System.out.println("email: " + "example@cs.uns.edu.ar " + miMain.validateEmail("example@cs.uns.edu.ar"));
       System.out.println("email: " + "name-surname@computer_name.net_name.com " + miMain.validateEmail("name-surname@computer_name.net_name.com"));
       System.out.println("email: " + "name-sur#name@computer_name.net_name.com " + miMain.validateEmail("name-sur#name@computer_name.net_name.com"));
       System.out.println("email: " + "name-surname@comp#uter_name.net_name.com " + miMain.validateEmail("name-surname@comp#uter_name.net_name.com"));
       System.out.println("email: " + "name-surname@computer_name.net_na#me.com " + miMain.validateEmail("name-surname@computer_name.net_na#me.com"));
       System.out.println("email: " + "!u@hotm@ail.co " + miMain.validateEmail("!u@hotm@ail.co"));
       System.out.println("email: " + "u@hotm@ail.co " + miMain.validateEmail("u@hotm@ail.co"));
       System.out.println("email: " + "u@hotmail.co " + miMain.validateEmail("u@hotmail.co"));
       System.out.println("email: " + "u@hotmail.c " + miMain.validateEmail("u@hotmail.c"));
       System.out.println("email: " + "!u@hotmail.cc " + miMain.validateEmail("!u@hotmail.cc"));
       System.out.println("email: " + "uu@hotmail.cc " + miMain.validateEmail("uu@hotmail.cc"));
       System.out.println("email: " + "@hotmail.cc " + miMain.validateEmail("@hotmail.cc"));
       System.out.println("email: " + ".u@hotmail.cc " + miMain.validateEmail(".u@hotmail.cc"));
       System.out.println("email: " + "u.u@hotmail.cc " + miMain.validateEmail("u.u@hotmail.cc"));
       System.out.println("email: " + "u u@hotmail.cc " + miMain.validateEmail("u u@hotmail.cc"));
       System.out.println("email: " + "uu@h.cc " + miMain.validateEmail("uu@h.cc"));
       System.out.println("email: " + "5u@h.cc " + miMain.validateEmail("5u@h.cc"));
       System.out.println("email: " + "uu@hh.cc " + miMain.validateEmail("uu@hh.cc"));
       System.out.println("email: " + "5uu@hh.cc " + miMain.validateEmail("5uu@hh.cc"));
       System.out.println("email: " + "5uu@h.cc " + miMain.validateEmail("5uu@h.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateEmail("5.cc"));
       System.out.println("email: " + "5@h.cc " + miMain.validateEmail("5@h.cc"));
       System.out.println("email: " + "5@h.cc.d " + miMain.validateEmail("5@h.cc.d"));
       System.out.println("email: " + "5@h.cc.dd " + miMain.validateEmail("5@h.cc.dd"));
       System.out.println("email: " + "5@h.c.dd " + miMain.validateEmail("5@h.c.dd"));
       System.out.println("email: " + "avf-@h.c.dd " + miMain.validateEmail("avf-@h.c.dd"));
       System.out.println("email: " + "a-vf@h.c.dd " + miMain.validateEmail("a-vf@h.c.dd"));
       System.out.println("email: " + "avf@h.c.dd " + miMain.validateEmail("avf@h.c.dd"));
       System.out.println("email: " + "-avf@h.c.dd " + miMain.validateEmail("-avf@h.c.dd"));
       System.out.println("email: " + "_avf@h.c.dd " + miMain.validateEmail("_avf@h.c.dd"));
       System.out.println("email: " + "a-_-_.-_b--d__-@h.c.dd " + miMain.validateEmail("a-_-_.-_b--d__-@h.c.dd"));
       System.out.println("email: " + "a_._-@h.c.dd " + miMain.validateEmail("a_._-@h.c.dd"));
       System.out.println("email: " + "a_.-@h.c.dd " + miMain.validateEmail("a_.-@h.c.dd"));
       System.out.println("email: " + "a.-@h.c.dd " + miMain.validateEmail("a.-@h.c.dd"));

       System.out.println("*****************************validateRightEmail******************************************");
       System.out.println("email: " + "cs.uns.edu.ar " + miMain.validateRightEmail("cs.uns.edu.ar"));
       System.out.println("email: " + "computer_name.net_name.com " + miMain.validateRightEmail("computer_name.net_name.com"));
       System.out.println("email: " + "comp#uter_name.net_name.com " + miMain.validateRightEmail("comp#uter_name.net_name.com"));
       System.out.println("email: " + "computer_name.net_na#me.com " + miMain.validateRightEmail("computer_name.net_na#me.com"));
       System.out.println("email: " + "hotm@ail.co " + miMain.validateRightEmail("hotm@ail.co"));
       System.out.println("email: " + "hotmail.co " + miMain.validateRightEmail("hotmail.co"));
       System.out.println("email: " + "hotmail.c " + miMain.validateRightEmail("hotmail.c"));
       System.out.println("email: " + "h.cc " + miMain.validateRightEmail("h.cc"));
       System.out.println("email: " + "hh.cc " + miMain.validateRightEmail("hh.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateRightEmail("5.cc"));
       System.out.println("email: " + "h.cc.d " + miMain.validateRightEmail("h.cc.d"));
       System.out.println("email: " + "h.cc.dd " + miMain.validateRightEmail("h.cc.dd"));
       System.out.println("email: " + "h.c.dd " + miMain.validateRightEmail("h.c.dd"));
       System.out.println("email: " + "ail.co " + miMain.validateRightEmail("ail.co"));
       System.out.println("email: " + "hotm@ail.co " + miMain.validateRightEmail("hotm@ail.co"));
       System.out.println("email: " + "hotm " + miMain.validateRightEmail("hotm"));
       System.out.println("email: " + "hotmail.co " + miMain.validateRightEmail("hotmail.co"));
       System.out.println("email: " + "hotmail.c " + miMain.validateRightEmail("hotmail.c"));
       System.out.println("email: " + "hotmail.cc " + miMain.validateRightEmail("hotmail.cc"));
       System.out.println("email: " + "h.cc " + miMain.validateRightEmail("h.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateRightEmail("5.cc"));
       System.out.println("email: " + "h.cc.d " + miMain.validateRightEmail("h.cc.d"));
       System.out.println("email: " + "h.cc.dd " + miMain.validateRightEmail("h.cc.dd"));
       System.out.println("email: " + "5h.c.dd " + miMain.validateRightEmail("5h.c.dd"));

       System.out.println("*****************************validateLeftEmail******************************************");
       System.out.println("email: " + "!u@hotm " + miMain.validateLeftEmail("!u"));
       System.out.println("email: " + "u " + miMain.validateLeftEmail("u"));
       System.out.println("email: " + "uu " + miMain.validateLeftEmail("uu"));
       System.out.println("email: " + "!u " + miMain.validateLeftEmail("!u"));
       System.out.println("email: " + ".u " + miMain.validateLeftEmail(".u"));
       System.out.println("email: " + "u.u " + miMain.validateLeftEmail("u.u"));
       System.out.println("email: " + "u u " + miMain.validateLeftEmail("u u"));
       System.out.println("email: " + "5u " + miMain.validateLeftEmail("5u"));
       System.out.println("email: " + "5.cc " + miMain.validateLeftEmail("5.cc"));
       System.out.println("email: " + "5 " + miMain.validateLeftEmail("5"));
       System.out.println("email: " + "avf- " + miMain.validateLeftEmail("avf-"));
       System.out.println("email: " + "a-vf " + miMain.validateLeftEmail("a-vf"));
       System.out.println("email: " + "avf " + miMain.validateLeftEmail("avf"));
       System.out.println("email: " + "-avf " + miMain.validateLeftEmail("-avf"));
       System.out.println("email: " + "_avf " + miMain.validateLeftEmail("_avf"));
       System.out.println("email: " + "a-_-_.-_b--d__- " + miMain.validateLeftEmail("a-_-_.-_b--d__-"));
       System.out.println("email: " + "a_._- " + miMain.validateLeftEmail("a_._-"));
       System.out.println("email: " + "a_.- " + miMain.validateLeftEmail("a_.-"));
       System.out.println("email: " + "a.- " + miMain.validateLeftEmail("a.-"));
   }
}

#31
Hola, estoy cargando una pagina en un bufferedReader y leo caracter a caracter simplemente con:

char car = documento.read();// y me guarda el caracter

El problema es que quiero leer hacia atrás. ¿Cómo puedo hacer eso?