Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda con java y su classpath

aioros.02

Bovino maduro
Desde
28 Ago 2008
Mensajes
183
que tal compañeros.

tengo el problema siguiente con java:

se supone que cuando se instala el jdk y se configura el path en opciones avanzadas > variables de entorno, se puede ejecutar los siguientes comandos para compilar y ejecutar un programa hecho en java, desde cualquier directorio:
c:\> javac archivo.java
y despues para ejecutarlo
c:\> java archivo

bueno pues resulta que yo ya configure el path y no me funciona, cuando ejecuto el comando "c:\> javac archivo.java" me dice que no se puede ejecutar esa operacion.

Sin embargo si mi programa (en este caso archivo.java) lo copio al dierectorio bin donde esta instalado java, si se ejecutan los comandos javac y java, pero lo que yo quiero es ejecutarlo desde cualquier directorio.

alguien podria decirme como le hago para lograr eso?

el jdk esta instalado correctamente dado que en la terminal escribo los comandos java y javac y si los reconoce el sistema.
 
Hola que tal soy novato en esto del java pero lo tengo configurado bien, bueno estos son los pasos que tienes que hacer para poner el classpath:

1.- Dar click derecho a mi pc (se abrira las propiedades del sistema)

2.- Ve a la pestaña Opciones Avansadas y de ahi a Variables de Entorno.

3.- Se abrira la ventana Variables de Entorno, esta dividida en dos, Variables de usurario para el administrador y variables del sistema

4.- en variables del sistema tenemos que ver si tenemos la variable CLASSPATH, en caso contrario tenemos qeu dar click en el boton Nueva.

5.- dando click en el boton se abrira la ventana de nueva variable donde el nombre de la variabale sera CLASSPATH, y el nombre de la variable en mi caso es C:\Archivos de programa\Java\jdk1.6.0_14\src.zip; C:\Archivos de programa\Java\jre6\lib\ext\QTJava.zip

6.- damos en guardar y listo tenemos comfigurado la variables de classpth esto es depende donde este isntalado tu jdk

7.- para porbar esto escribe en dos javac y podras ver las opciones de la varible.


espero te sirva este pequeña explicacion mucha suerte y espero que podamos compartir conocimiento de java
:chommy: :metal: :vientos:


que tal compañeros.

tengo el problema siguiente con java:

se supone que cuando se instala el jdk y se configura el path en opciones avanzadas > variables de entorno, se puede ejecutar los siguientes comandos para compilar y ejecutar un programa hecho en java, desde cualquier directorio:
c:\> javac archivo.java
y despues para ejecutarlo
c:\> java archivo

bueno pues resulta que yo ya configure el path y no me funciona, cuando ejecuto el comando "c:\> javac archivo.java" me dice que no se puede ejecutar esa operacion.

Sin embargo si mi programa (en este caso archivo.java) lo copio al dierectorio bin donde esta instalado java, si se ejecutan los comandos javac y java, pero lo que yo quiero es ejecutarlo desde cualquier directorio.

alguien podria decirme como le hago para lograr eso?

el jdk esta instalado correctamente dado que en la terminal escribo los comandos java y javac y si los reconoce el sistema.
 
te doy la informacion que nesecitas

si utilizas un entorno de desarrollo como netbeans, o el que me gusta a mi, eclipse, es verdad, no nesecitaras configurar el classpath

pero eso tiene cierto problema, que si en realidad deseas ser un buen graduado en las tuercas y dedos engrasados de java, hace bien en intentar utilizar el comando en la consola, cmd, dos, o algo asi, imagino que estas trabajando en windows xp, vista o eso

en caso de linux es lo mismo, pero varian detalles

ahi voy, lo que sucede estimado, amigo, y yo tambien estuve investigando desde hace tiempo, por que me lanze de lleno a java j2se, es lo siguiente

la varaible class path, queda definida en tu instalacion, como mencionas tu mismo, es cierto. al igual que la variable java, o javac, por eso al tipearla en la linea de comandos, te direcciona hacia c:\tu_instalacion\bin\java.exe



lo mismo el compilador, y si te pones en la linea de comandos apenas has iniciado el sistema operativo, si tecleas "clasapath" debeeria nmostrar el valor de la instalacion, la carpeta de las librerias de java, etc

por ejemplo si escribes:
set classpath

en eso estuvo bien lo que dijo el amigo, pero hay un pequeño tema ahi.

esto es lo importante: el classpath, ojo, en realidad, no se utiliza como una varaible global de el sistema operativo, esto significa que cada vez que tu invocas el java.exe, o el javac.exe, desde java o javac respectivamente; ira a buscar el valor de classpath, por defecto, que es el valor que tienes como variable de entorno, por eso, te funciona unicamente al pegar el archivo, tuArchivo.java, enel directorio de aquel classpath

el tema es que cuando llames a javac, o java, este no esta pensado para ir a ese directorio utilizar unicamente ese mismo valor global; esta pensado y esto eso es lo relevante: esta diseñado de tal forma que tienes que especificarle el valor de class path cada vez que uses java.exe o javac.exe

por lo tanto si tu tecleas en la linea de comandos, java + enter, te saldran toda la lista de parametros tipo ayuda, uno de estos es "classpath" o "cp"

entonces tienes que llamar a java asi:

java -classpath c:\directorio\ archivo,java

o abreviado es lo mismo:

javac -cp c:\directorio\ archivo,java

te sugiero esta ultima abreviatura

ahora, mas simple todavia, si tu estas parado en el directorio en cuestion donde esta el archivo .java, que creo es lo que hiciste, puedes hacer esto

javac -cp . AplcacionEjemplo.java

esto esta mucho mejor, por que el punto indica que class path sera el mismo directorio actual donde tu estes parado, eso con el punto "."

classpath es un parametro de java, y javac el compilador
si tu no le pasas el parametro, como hacias en su momento, entonces se ira a buscar la variable de entorno que es el directorio de instalacion

tu debes decirle donde sacara los archivos.java

lo que pasa en que en eclipse o netbeans, tu creas un nuevo espacio de trabajo y le metes el nuevo proyecto y ahi le das la ruta, entonces los archivos class que agregues van quedado ahi, y cada vez que le pidas al eclipse el ejecutar, el hara estos comandos, incluido el paso de el valor de classpath y a veces uno ni tiene idea de esto, por eso es mejor empezar asi mas rupestre, y una vez tengas idea o domines eso puedes prescindir de eso para usar un entorno como eclipse, pero sabiendo el tema de fondo ya que lo hiciste artesanal y aprendiendo un tiempo asi , a manito con consola y bat

ahora una cosa mas simple, esta es la que uso yo te sugiero en lugar de abrir una consola y posicionarte en el directorio de el fuente, que hagas mejor lo siguiente

creas un archivo bat, puedes crear uno nuevo ahi con el boton derecho de windows, en las carpetas, o puedes ir a el notepad, y le cambias la extension a un txt por bat, y le das boton derecho, editar, y le agregas lo siguiente

por rejemplo

javac -cp . AplcacionEjemplo.java
pause
java -cp . AplcacionEjemplo
pause


entonces tu solo pinchas el bat le das doble clik y primero te compilara, siempre estando el archivo bat al lado de el archivo java, o afinando la ruta arriba si cambias de directorios pero eso no seria necesario

entonces saltara la consola, sin tener que posicionar el cd, directorio , etc

de ahi si el archivo tiene errores, el compilador lo escribira en consola y lo puedes leer, despues la sentencia pause, de el bat, te hara esperar a que teclees, una tecla cualquiera puede ser enter, o espacio, esto por que de lo contrario pasa y se cierra sin alcanzar a leer, por lo de la llamada

despues hace la ultima llamada a ejecuccion por java.exe
y terminada la ejecucion le das tecla y fin



saludos
 
hola histericu esta bien tu explicacion pero siento que le das mucha vuelta con el bat, por que yo lo tengo configurado con lo que puse y funciona de diez lo del classpath, pero bueno toda informacion es bien recibida y espero que sea utili de todos modos hay un libro de Fco. Javier Ceballos de ahi saca el contenido de como configurar el classpath espero les sirva dejo el link http://rapidshare.com/files/203423954/Alfa.Y.Omega.Java2.Javier.Ceballos.rar


Saludos :chommy:
 
hola histericu esta bien tu explicacion pero siento que le das mucha vuelta con el bat, por que yo lo tengo configurado con lo que puse y funciona de diez lo del classpath, pero bueno toda informacion es bien recibida y espero que sea utili de todos modos hay un libro de Fco. Javier Ceballos de ahi saca el contenido de como configurar el classpath espero les sirva dejo el link http://rapidshare.com/files/203423954/Alfa.Y.Omega.Java2.Javier.Ceballos.rar


Saludos :chommy:



bueno eso es para desarrollar, y para maniuplar por comprender en profundidad el problema, es decir me doy la vueltota para que no se me olvide nunca

una cosa mas se me olvido
tambien se podria hacer con un

set classpath = la ruta
e inmediatamente despues la llamada a java, lo que pasa que esto es solo para programar, sin entorno de desarrollo, unicamente con el notepad, u otro editor ligero, un explorador de carpetas de windows, y listo

por cierto esto es unicamente para mientras dure el desarrollo

para presentar el programa en un archivo esta el jar, y el fichero manifiesto

saludos


pd gracias por el libro de java, estoy bajandolo
 
hola histericu esta bien tu explicacion pero siento que le das mucha vuelta con el bat, por que yo lo tengo configurado con lo que puse y funciona de diez lo del classpath, pero bueno toda informacion es bien recibida y espero que sea utili de todos modos hay un libro de Fco. Javier Ceballos de ahi saca el contenido de como configurar el classpath espero les sirva dejo el link http://rapidshare.com/files/203423954/Alfa.Y.Omega.Java2.Javier.Ceballos.rar


Saludos :chommy:
:)


epa hermano el archivo esta en la caja fuerte
contraseña por favor

gracias
 
una mas para mi buen amigo histericu para no estar dando le clics also bat por que no ponerlos en la carpeta de inicio asi cada vez qeu inicies con windows no tendras que estar haciendo clics a lso bat´s suerte


set classpath = la ruta
e inmediatamente despues la llamada a java, lo que pasa que esto es solo para programar, sin entorno de desarrollo, unicamente con el notepad, u otro editor ligero, un explorador de carpetas de windows, y listo

Saludos :chommy:
 
una mas para mi buen amigo histericu para no estar dando le clics also bat por que no ponerlos en la carpeta de inicio asi cada vez qeu inicies con windows no tendras que estar haciendo clics a lso bat´s suerte




Saludos :chommy:


sabes mi estimado, lo que me planteas es total y absolutamente razonable, incluso viendome a mi mismo en retroespectiva, es raro que yo lo haga de esta manera que a primera vista resulta un poco largada de vuelta

te explico rapido aunque esto se remonta al año 2006 cuando dije, no mas visual basic, despues de trabajar varios años unicamente en ese lenguaje para programas de escritorio, dije : empiezo con java


me baje un manual de java basico donde lo primero que salia, era sobre setear la variable de ambiente

todo bien hasta, ahi

despues me meti a eclipse y di mis primeros pasos, pero hize solo un ejemplo en la consola, luego en el eclipse pude avanzar algo, la verdad fui indisciplinado y sin perseverancia

entonces, en eclipse, uno se olvida totalmente de la varaible classpath

asi que me olvide, y deje el tema como hasta el 2008. por que en el 2006 me tope con que swing (lo que tradicionalmente se utiliza para hacer ventanitas, inferaz de usuario, etc) eras mas lento de digerir

asi que hasta el 2008 tuve tiempo y un buen librazo de swing, y me tire de lleno en eclipse, y logre aprender a dominar swing, como despues de seis meses de estudio constante...pero, pero , que fue, te digo, es que cierto dia, se me echo a perder la memoria ram, y quede con 250 mb, y eclipse no funcionaba, y tuve que elegir, entre dejar mi aprendizaje o recurrir a las tecnicas cavernicolas, el noteapd y el bat..dicho sea de paso, en php tambien tuve que hacerme el minimalista con notepad


bueno ahi entre al foro de nuestro amigo, el sabio de java, chuidiang

http://foro.chuidiang.com/index.php
http://chuidiang.com/index.php

y le pregunte por el classpath, por que yo entendia que era el tema de la variable de entorno, y ese veterano sugeria bats, y le pregunte por que si eclipse lo manejaba, y me dijo eso que yo le plageo, 'que en eclipse te abstrae de el manejo de la classpath, e incluso de la compilacion y si uno aprendiera desde cero solo en eclipse, cuando uno tuviera que sacar una distribucion tendria que urgirse con esos menesteres y trucos' , lo que me parecio bien...despues vino el tema de conectar a la base de datos, libre, firebird, con unas librerias, y bueno, disculpa la hsitoria tan extensa pero es la unica forma en que puedo responderte sinceramente

bueno, tenia que conectar la base de datos con una libreia en jar y no me funcionaba: solo pegando en la carpeta de el classpath, pero se me hacia como aferrarse a una carpeta, y yo queria mas libertad

entonces bueno, fui cree la variable de entorno, y sucedio, que empeze a crear varios programas en java de ejemplos de el manual, y se me hacia imposible agregar los 30 ejemplos en la variable de ambiente y tener que ir agregando para cualquier nueva instancia de ejecucion,

asi que despues estaba el problema de los jar, que ademas, hay que agregarlos con nombre y apellido, pide la ruta absoluta incluido el .jar

ahi ya me incline por los bats, y ademas me han ido gustando

creo que me sirvio saber esa opcion, y dominarla, pero siento que es solo lo mas primitivo y escencial, y ahora quiero pasar a usar maven, que son palabras mayores, pues te maneja versiones directorios, te compila, y bueno, despues volvere a eclipse pero sabiendo todos los menesteres, y asi podre salir mas rapido con las soluciones

por otro lado amigo mio, bueno lo que me dices, es razonable, pero si te fijas si bajas un jar, de ejecutable, si se instala, se agregara el claspath de el windows, pero si tienes configurado windows, para que los jar se abran con java.exe, entonces bastara hacerle doble click como a cualquier ejecutable, pues el classpath se especifica internamente

ahora el tema en si, es que classpath, bien puede ser una varaible de ambiente, y eso no tiene absolutamente nada de malo, pero tambien puede ser un parametro de ejecucion, java tomara uno si no se indica el otro

bueno estuvo dificil explicarme pero bueno, asi es la cosa jejeje

saludos hermano, ahora si mirare, el texto que enviaste, excepto el libro de swing, ningun otro de java me ha dejado satisfecho, en lo de formato o forma de explicar, pero no habia mirado el alfa y omega de java


bueno si ahora me quieres linchar por extendido dejalo asi, incuso creo que te comprendere si lo haces
 
gracias a todos por su gran ayuda lo estoy pooniendo en practica.

ah y gracias por el libro.
 
mi buen amigo es verdad y tienes razon de todo lo que dices es bueno retomar esto de la carvernicoleada y es lomejro por que casi nunca falla, pero por su pollo que es emjor aprender mas cosas asi sea entorno grafico y abiente dos, lo mejor es aprende que metodos hay para poder saber en que la regamos de un modo o de otro pero siempre es bueno saber mas cosas, espero que no te lo tomes a mal, pero yerba mala nunca muere, jejejej saludos espero me puedas luego dar algunos consejos de java soy principiante en esto y no sabia qe ya tenias experiencia pero en fin creo que los dos le dimos muy buenas respuestas a aioros.02 jeje y ami me diste una leccion se te agradece....
Saludos :chommy:
 
mi buen amigo es verdad y tienes razon de todo lo que dices es bueno retomar esto de la carvernicoleada y es lomejro por que casi nunca falla, pero por su pollo que es emjor aprender mas cosas asi sea entorno grafico y abiente dos, lo mejor es aprende que metodos hay para poder saber en que la regamos de un modo o de otro pero siempre es bueno saber mas cosas, espero que no te lo tomes a mal, pero yerba mala nunca muere, jejejej saludos espero me puedas luego dar algunos consejos de java soy principiante en esto y no sabia qe ya tenias experiencia pero en fin creo que los dos le dimos muy buenas respuestas a aioros.02 jeje y ami me diste una leccion se te agradece....
Saludos :chommy:


jajaja, no te preocupes, me lo he tomado bien jejeje

si bueno, sabes, en realidad, si es util saber aunque sea, untiempo estar aso, o aunque sea saberlo para utilziar herramientas mas rapidas, para hacerse mas productivo y ahorra tiempo esfuerzo y evitar la vueltas innecesarias

bueno tus dudas, fueron legitinmas y ranzonales, insluco me despertaron mas de una duda, y me hicieron preguntarme si en realidad existiran mas formas, y me nacieron dudas sobre un tema que aun no teneido nesecidad de tocar, que es el de la instalacion, pues no se como se hace si tengo una libreria y despes otro sistema pretende utilizarle, en tal caso, que cual es la solucion me pregunto. tirar los archivos a class path, o tener nuevas copias, de los jar o .class repetidas, en diversos directorios, esta ultima situacion no se ve bien de el todo

bueno en todo caso, ambos tenemos algo de razon, y eso no es por competir, yo por otro lado, en realidad llevo poco tiempo y apenas he estado en j2se, todaviano me meto en j2ee, servidores de transacciones, jbeans, jsp, y hasta ahora me gustado el j2se asi qeu quizas vaya por esos lados


hermano tabien creo que seera util eso de los comandos por que tenemos que ir metiendonos en el tema de linux, alla todavia los comandos son una cosa intensiva, y en realidad windows, es todo visual por que es para usuarios basicos e intermedios, aunque puedan ser muy expertos en ciertos temas particulares

bueno hermano, cualqueir cosa, la discutimos con gusto, aqui hay muchos que sabes mucho mas que yo en el tema, pero si tengo curiosidad, me interso por aprender asi que lo que quiras comaprtir, preguntar o aportar, me intersa conocer toda la inforamcion que quieras compartir

a propostio ahora voy a revisar el texto que enviaste al foro, aun no tenido portunidad de verlo en profundidad

te cuento y estamos hablando

suerte!!
 
oye esta bien este librote, me parecio buena la parte de estructura de datos

bueno ahora aprendi algo rpegutnado por que me surgieron problemas nuevos, a raiz de tus cuestionamientos

estoy necesitando avanzarle y cambiar mi estructura de directorio en los codigos fuentes y ahora me entere de que el archivo manifiesto de el jar, puede tener multiples, directorios para librerias, y se le puede meter varios jars individuales con la ruta entera o relativa

me has dado un empujon, hacia algo bueno le avance un poco al tema

ahora me resta preguntar sobre la instalacion de nuestra aplicaciones desarrolladas, por que me parecia mas sensato en este tema lo de tener una carpeta mas global (en relacion al lo de las librerias compartidas, como las de base de datos especificas como mysql o firebird), como la variable de ambiente ahi estoy preguntadole al buen maestro chuidiang

saludos cordiales
 
Volver
Arriba