PREGUNTAS CONTESTADAS - Java

 Hay un total de 630 Preguntas.<<  >> 

    Pregunta:  56808 - SHUTDOWN EN JAVA
Autor:  daniel garcia
Buenas, quiero realizar eventos de apagado, reinicio de windows, etc...

He investigado pero no encuentro mucha informacion, si alguien sabe la forma se lo agradeceria.

He pensado que kiza haya 2 formas:

1- Mediante una clase, metodo o lo que sea que desconozco.

2- O bien desde la consola de windows, introducir el script necesario. En este caso... como se haria para introducir lineas de codigo en la consola de windows? (sin que esta apareciese, claro)

Un saludo.
  Respuesta:  keli gr
Hola Daniel,

Yo alguna vez lo he hecho invocando a un ejecutable desde una llamada al sistema.

Process proceso = Runtime.getRuntime().exec("c:inshutdown.exe /l /t:00 /y /c");
int retorno = proceso.waitFor();

Eso era para hacer un halt, para hacer un reboot habría que hacerlo de la siguiente forma:

Process proceso = Runtime.getRuntime().exec("c:inshutdown.exe /l /r /t:00 /y /c");
int retorno = proceso.waitFor();

El programa shutdown.exe viene de serie con Windows XP, en el directorio %SystemRoot%system32 del XP. Puedes utilizarlo también en un windows 2000, sólo tiene que conseguir el fichero desde un XP.

También puedes consultar algo de esto en la siguiente dirección:
http://support.microsoft.com/kb/317371/es

    Pregunta:  57045 - REQUEST DE UN DATE
Autor:  Sonia Perez
Tengo un formulario con unos campos a rellenar. Entre ellos un campo fecha que se obtiene al pinchar en un calendario la fecha deseada. Mi problema está en que al visualizar el valor que obtengo me da null (todos los demás me llegan bien).
No sé si el problema está en que la request me devuelve un string y no un date.
He probado esto:

out.println(request.getParameter("Sfecha")); //LLEGA NULL

String Sfecha = (String)request.getParameter("fecha");
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("dd/mm/yyyy");
sdf.format(date);
  Respuesta:  Sonia Perez
Ya lo resolví. El problema era que yo había puesto un disabled en el campo fecha para evitar que los usuarios introdujesen un valor en ella y sólo admitiese los que se pinchaban en el calendario.Quitando este atributo el valor me llega bien :D. Lo que pasa que ahora me toca validar los valores introducidos por el usuario

    Pregunta:  57073 - COMO HACER UN .BAT Y ORGANIZAR MI PROYECTO EN JAVA
Autor:  Diego Angenscheidt
Hola, estoy haciendo un software, en tres capas, (presentacion, negocio, persistencia)
uso eclipse.
quiero saber como tendria que hacer y cuales serian los pasos para hacer un archivo .bat que ejecute el programa, setear todas las variables de entorno,y eso.
Si alguien me puede ayudar a la brevedad. porque lo tengo que entregar en algunos dias.
Ademas tengo problemas con la documentacion, manuales de usuario, instalacion, diagrama de clases.
Saludos y gracias
  Respuesta:  Aaron Gonzalez
Hola Diego!

Por lo que entiendo tú necesitas una especie de ícono con el cual al dar doble click te despliegue tu aplicación. Pues bien, en efecto, el .bat es una opción, sin embargo existen otras.

(i) Archivo por lotes: En el notepad puedes introducir el siguiente comando
SET CLASSPATH=%CLASSPATH%/[ruta de las clases de tu aplicación]
java [TuPaquete.TuClaseConMetodoMain]

(ii) Creación de un archivo .jar ejecutable: Para esto necesitas todas tus clases empaquetadas y listas para "enjarsarse" con un comando como:
jar cvfm MyJarName.jar manifest.txt *.class

(iii) Mi favorita.... Crear un archivo .exe en C++ y enlazarlo con las clases de ejecución de tu programa. Esto lo haces de una forma similar a como ejecutas NetBeans. Recuerda que NetBeans está escrito en Java, pero el icono que lo ejecuta es un .exe.

Espero haberte ayudado. Saludos.

    Pregunta:  57115 - COMO GENERAR NUMEROS ALEATORIOS EN UN RANGO DETERMINADO
Autor:  hernan machuca
si alguien podria decirme como genera un numero aleatorio en u rango determinado es decir que me genere un nueroro cualquira en un rango de 2 numeros que yo le asigne
ejemplo:
numero aleatoruio entre 400 y 2500
gracias
  Respuesta:  Leo Lobeto
El método Math.random() genera un número real al azar entre 0 y 1. Si quieres números que estén entre dos números reales (x, y) puedes usar la fórmula:

(y-x) * Math.random() + x

Para obtener números enteros no basta con redondear el resultado de la fórmula anterior porque tendrían menos probabilidades de salir los números de los extremos. Para obtener enteros la forma, si no me equivoco, sería:

Math.floor((y-x+1) * Math.random() + x)

    Pregunta:  57127 - FUNCION JAVA ANTES DE FUNCION JAVASCRIPT
Autor:  Sonia Perez
Hola amigos!!
Tengo un problema. Tengo un formulario que cuando hago el submit va a una función javascript que me valida los campos del mismo. Esto funciona perfectamente pero, necesito comprobar que la fecha introducida no supera en 5 días a la fecha actual y para ello uso métodos java así que, esta función necesito que se ejecute antes de llamar a la de javascript puesto que sino, ya no se ejecutará nunca al ejecutarse javascript en el cliente y java en el servidor.¿Cómo debo hacerlo?Muchas gracias!!

Aquí les pongo también el código de la función Java por si ven algo que esté mal:

function Fecharmaxima (formulario)
{
//Obtengo una instancia de Gregorian Calendar
Calendar ahora=Calendar.getInstance();

//Obtengo la fecha actual
long miliseg=ahora.getTime();

//Sumo 5 días a la fecha actual
miliseg=ahora.add(Calendar.DATE,5);

//Compruebo que la fecha introducida no sea mayor que (la actual +5)
if(formulario.fecha.value<=miliseg)
return true;
else
alert("Sólo se aceptan fechas 5 días posteriores a la actual");
return false;
}
  Respuesta:  Omar Hernandez
Esta bien el código si estas usando mvc, entonces si necesitarías validar a nivel usuario es decir en el js ya que al hacer el submit no se podría entonces en mi opinión seria antes del submit mira en js seria algo asi:

function Fecharmaxima (Fecha) {
var fechaIntroducida=eval("'#" + Fecha + "'");
//Obtengo la fecha actual
var fecha =new Date();
var fechaValida = fecha.setDate(fecha.getDate()+5);


//Compruebo que la fecha introducida no sea mayor que (la actual +5)
if( $('#fechaIntroducida').val() <= fechaValida) {
// en vez de return true;
//podrias meter el submit aqui.
}else{
alert("Sólo se aceptan fechas 5 días posteriores a la actual");
$('#fechaIntroducida').focus();
//donde fechaIntroducida podria ser el input
}
}

    Pregunta:  57197 - PROBLEMA CON SOCKETS TCP
Autor:  hadrien
Hola, estoy desarrollando un programa servidor-cliente (y cliente-cliente (p2p)) con Sockets y no tengo mucha experiencia con ello, por lo que me gustaría exponer unas dudas.

De momento, he creado una classe que se ocupa de manejar la conexión del servidor con el cliente y otra que hace la inversa y me funciona, pero el cliente debe tener la opción de poder conectarse a otro cliente, del que previamente el servidor le habrá pasado ip y puerto, y aquí tengo un problema. En la clase que maneja la conexión cliente-servidor con un socket, creo otro Socket o ServerSocket (según la petición) para conectarse con otro cliente pero me sale el error de "connection reset" y no sé muy bien dónde está el error, si en el hecho de que debería crear otro handler aparte, si en los puertos e ip de ejemplo (de momento sólo puedo probar con localhost...), etc.

¿Alguien me puede echar un cable?

¡¡Gracias de antemano!!
  Respuesta:  hadrien
Hola,

Como el cliente puede hacer de cliente y servidor a la vez, de momento lo he solucionado de esta forma:

try {
Socket s = new Socket(ip, serverport);
System.out.println("Socket created!");
new ClientHandler(s).start();
} catch (IOException e) {
System.out.println("Could not accept " + e);
}

try {
ServerSocket clientserver = new ServerSocket(port);
Socket upclient = clientserver.accept();
System.out.println("Connection from other client accepted!");
new ClientHandler(upclient).start();
} catch (IOException e) {
System.out.println("Could not accept " + e);
}

Aunque faltan por pulir algunos detalles...

Saludos.

    Pregunta:  57388 - MAXIMIZAR UN JFRAME CON JDK 1.3.1
Autor:  Keli
Hola,

Tengo que maximizar una ventana java, que es un JFrame, de forma que no pueda ni minimizarse ni moverse.

El que me ocupe toda la ventana lo he conseguido con la siguiente instrucción:

jFrame.setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());

Pero no se como hacer que la ventana no pueda moverse. El estado de la ventana lo tengo así:

jFrame.setState(Frame.NORMAL);

Supongo que al maximizar la ventana evitaría que ésta se puediera mover con el ratón, pero no se como hacerlo desde código.
La instrucción jFrame.setExtendedState(jFrame.MAXIMIZED_BOTH);
no puedo utilizarla porque la JDK 1.3.1 no define esa constante.

Gracias.
  Respuesta:  Keli
Gracias Yessica.

Lo que me comentas ya estaba contemplado, de esa forma no puedo manipular el tamaño de la ventana, pero persiste el problema de que si que puedo mover la ventana de sitio.

¿Alguna idea?

Gracias de todas formas.
  Respuesta:  YESSICA VAZQUEZ
HOLA ESPERO TE PUEDA AYUDAR YO ENCONTRE ESTA SENTENCIA EN UN LIBRO
setResizable(false);

LA DECLARAS EN TO CONSTRUCTOR Y SI LE DISTE VARIABLE A TU FRAME LO PONES ASI PARA QUE TE FUNCIONE

VARIABLE.setResizable(false);

ESTA SIMPLE SENTENCIA NO LE PERMITE A TU FRAME SER MANIPULADO POR EL MOUSE

    Pregunta:  57410 - PEGAR UN PANEL A UN APPLET AL PULSAR BOTON
Autor:  Miguel Rico
Hola me gustaria saber como añadir(visualizar) un panel al pulsar un boton en un applet , en el que tengo una JToolBar con los botones que deben visualizar cada panel bajo de la JTooBar.
Gracias
  Respuesta:  Miguel Rico
Bueno ya he conseguido poder visualizar un determinado panel en un applet al pulsar un boton. Solo hay que implementar el containerListener y añadirselo al panel que queramos actualizar, para que cada vez que añadamos algo provoquemos un evento y manejarlo desde los metodos del ContainerListener, es decir repintar el area del panel con repaint() y validate(), ya que ambos metodos son necesarios para actualizar dicho panel.
Gracias de todas formas.

    Pregunta:  57439 - BEAN DENTRO DE UN BEAN
Autor:  Angel Manuel Garcia Esteban
Hola:

Estoy haciendo una aplicacion con struts, y en ella tengo un bean que contiene una lista y otro bean mas pequeño. Algo asi:

public class beanCert extends ActionForm{
List listado=new ArrayList();
beanCont bCont=null;
String nombre=null;
String ape1=null;
String ape2=null;
}

public class beanCont extends ActionForm{

String nombreEmpresa;
String direccion;
int anno;
}

Cada bean tiene sus metodos get y set para cada atributo o propiedad.
Ademas el beanCont representa los diferentes trabajos que una misma persona ha podido ir realizando a lo largo de su vida, por lo que, como pueden ser varios, tengo que almacenarlos en una lista, vector etc.
Mi problema es que los datos del beanCert (el de la persona) si me los respeta cuando trabajo con sesiones, pero cuando intento añadir un nuevo trabajo, solo me aparece el primero (que he metido a capon en construtor del beanCont)
¿POrque? ¿Que estoy haciendo mal?

Gracias
  Respuesta:  Dani CJ
Buenas, la forma correcta de hacer las clases es poniendo las variables como privadas y sin inicializar.
Es decir, asi:

public class BeanCert extends ActionForm {
private List listado;
private BeanCont bCont;
private String nombre;
private String ape1;
private String ape2;

public List getListado() {
return listado;
}

public void setListado(List listado) {
this.listado = listado;
}

public BeanCont getbCont() {
return bCont;
}

public void setbCont(BeanCont bCont) {
this.bCont = bCont;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApe1() {
return ape1;
}

public void setApe1(String ape1) {
this.ape1 = ape1;
}

public String getApe2() {
return ape2;
}

public void setApe2(String ape2) {
this.ape2 = ape2;
}
}



La otra clase sería:


public class BeanCont extends ActionForm {

private String nombreEmpresa;
private String direccion;
private int anno;

public String getNombreEmpresa() {
return nombreEmpresa;
}
public void setNombreEmpresa(String nombreEmpresa) {
this.nombreEmpresa = nombreEmpresa;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public int getAnno() {
return anno;
}
public void setAnno(int anno) {
this.anno = anno;
}
}



Y el error que te ocurre cuando rellenas la lista no sé exactamente por qué te ocurriá, pero la forma de hacerlo es esta:

BeanCert beanCert = new BeanCert();
List<String> listado = new ArrayList<String>();
listado.add("una cosa");
listado.add("otra cosa");
listado.add("otra mas");
beanCert.setListado(listado);


Un saludo

    Pregunta:  57457 - "CODE TOO LARGE"
Autor:  frei
hola, tengo un codigo en java de 4300 lineas y cuando compilo me aparece "code too large" en el codigo solo tengo el "public static void main(string args[ ])" y me señala el "main"....ya elimine todas lineas en blanco que podiay no se que hacer para que compile el programa...gracias de antemano....
  Respuesta:  Leo Lobeto
Hay limitaciones en la máquina virtual de Java con respecto al tamaño de métodos y variables de una clase. Por ejemplo, un método no puede exceder los 64Kb al ser compilado en bytecode. Si tienes un solo método gigante de 4300 lineas es probable que sea este tu problema. Las limitaciones en la máquina virtual las puedes consultar en la sección 4.10 del documento:

http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html

La forma de evitar este error sería refactorizar el método, extrayendo algunas partes y separándolas en métodos nuevos.

Más allá de evitar este error, un método de 4300 lineas es difícil de leer y mantener. Deberías considerar distribuir tu programa en pequeños métodos y pequeñas clases como forma de trabajo habitual.

Espero que esto ayude.

|<  <<  49 50 51 52 53 54 55 56 57 58 59  >>  >|