https://foro.gambas-es.org/viewtopic.php?f=20&t=8085
-----------------------------------
Shell
Viernes, 05 Junio 2020, 14:09

Cuando No Usas Un Magnifico Editor Y Haces Las Cosas Más Manualmente
-----------------------------------
Buenas!

Estoy con un manual de Java. Los ejercicios del libro se pueden bajar. Estos usan paquetes, pero vamos
por ejemplo. El paquete es el nombre del capitulo, el directorio.

A los que no estáis acostumbrados al sistema de paquetes y estamos acostumbrados a que ese trabajo
nos lo haga el editor, os chocará la forma luego de querer compilar un código que depende a su vez
de otras clases.

Procedimiento que yo haría:

Si no usas paquetes, no hay problemas. Usas el compilador y el interprete desde línea de comandos ( si te quieres complicar ).
Perooo, en el caso de los archivos bajados, como os comenté arriba, tienen paquetes.

Así un archivo puede contener algo como esto en su parte superior.

---
package funciones;
......
----

Una vez que ya tengas nombre de paquete en el archivo, no se puede compilar como estaba haciendo antes.
Y me tengo que ir al raiz donde se encuentren los archivos.  Y usar algo como:

[code linenumbers=false syntax=bash]
javac  capitulo05/juegoSimpleDotCom.java
[/code]

Y

[code linenumbers=false syntax=bash]
java  capitulo05/juegoSimpleDotCom
[/code]

Cuando yo realmente lo hubiera hecho en el mismo directorio... :roll:  :) 
Pero no se puede..

Es un rollo en el sentido de salir a la consola, subir un directorio y hacerlo desde línea de comando.
Cuando...muchos estamos acostumbrados a que esas tareas las haga el editor creando archivos ocultos
en el directorio del proyecto.

Y lógicamente no sera solo un archivo. Tendrás que compilar varios.

El problema que te puedes encontrar es que el autor del libro no explique como debería hacerse...y a lo mejor...el manual mide 700 paginas....y muy muy a lo lejos
pueda aparecer...ni por esa.

Moraleja...la gente está loca!.

Saludos


-----------------------------------
jguardon
Sabado, 06 Junio 2020, 16:15

Re: Cuando No Usas Un Magnifico Editor Y Haces Las Cosas Más Manualmente
-----------------------------------
No me entero de ná....


-----------------------------------
Shell
Lunes, 08 Junio 2020, 13:25

Re: Cuando No Usas Un Magnifico Editor Y Haces Las Cosas Más Manualmente
-----------------------------------
Jesús:

[quote]
No me entero de ná....
[/quote]

 :lol: 

Lo que vengo a decir es que hay editores dedicados a programación que tienen más características que otros editores más sencillos.
De todo lo que va necesitando el programador. Supongo que habrás visto alguna vez NetBean. Como autocompleta, como reconoce
métodos de una librería que importas en el código y así muchas características. Si has visto Eclipse casi por el estilo.

En cambio si usas unos editores que son de hecho más liviano la cosa cambia. Supongo que conoces Atom y SublimeText.
Estos editores se les instala complementos que facilitan la labor del trabajo del programador. A lo mejor no tan potentes
y otros más potentes.

Por poner un caso simple. Imagina escribir un código con el editor que trae por defecto el sistema operativo.
Si por un instante el editor tiene la propiedad de compilar el código directamente, no tienes que salirte a la consola
a escribir las instrucciones que necesitas para hacerlo "manualmente".

Si tus códigos son pequeños ejemplos eso significa que cada vez que tengas que realizar un cambio y cambiar el código
compilado por actualizar el código fuente, tienes que volver a hacer la misma operación "una y otra vez."

Si a ese código le añade que tienes varios ficheros, clases, pues o lo haces uno por uno o los compilas a la vez desde línea de comando.
Pero el resultado de compilar varios archivos que tenga algún error, es más lioso que solo ver los errores de un solo archivo compilado.

Ahora viene esto. Si te acostumbras a las facilidades que te da el editor, pongamos el caso de compilar, te pierdes la forma "real"
de como lo hace el lenguaje. Quiero decir como se debería hacer desde línea de comandos.  :roll: 

Cuando usas la consola de Linux "[b]no debemos nunca[/b]" que si trabajas con archivos "[b]nunca[/b]" "[b]nunca[/b]" "[b]nunca[/b]" olvidar el uso
de la tecla "[b]tabulador[/b]" para que nos vaya auto completando las rutas y no tener que escribir una y otra vez lo mismo manualmente.

Los usuarios tenemos una fea costumbre. No aprovechamos lo que el sistema nos ofrece. Y así una y otra vez.
Tenemos la cabeza más dura que el granito. Yo mismo.

El sistema de paquetes. Como tu sabes que has usado Python, los lenguajes tienen formas comunes de trabajar, Python y Java tiene
esa forma de trabajar con los "proyectos" que usan un sistema de paquetes ( un directorio ). Lógicamente cada uno con su estructura
particular ( al igual que ocurre con Gambas ).

No es lo mismo compilar un solo archivo  a compilar todo un proyecto. Si son varios archivos los que forman tu proyecto
hay que decirle al compilador, oye que esto pertenece al mismo proyecto, que estos archivos se encuentran en el mismo directorio.

El problema es que no sabes como realmente es la línea de comandos "adecuada" ya que te acostumbraste a hacerlo con 
un editor "tipo ballena" luego te das de ostias con la línea de comandos, errores por no saber usarlo. 
Ah y no olvidemos, palabras mal escritas... :wink:  :twisted: 

Que os voy a decir... :roll:
Ah si...que no me vaya por las nubes.. :-P 

Saludos


-----------------------------------
Shell
Lunes, 08 Junio 2020, 14:17

Re: Cuando No Usas Un Magnifico Editor Y Haces Las Cosas Más Manualmente
-----------------------------------
El proyecto java que estoy usando tiene tres archivos.

El código de uno puede hacer uso de otro. A pesar de lo engorroso que pueda mostrar errores de los tres archivos al compilar.
La solución fue compilarlo los tres a la vez.  :mricy: 

Estando en el mismo directorio.

[code linenumbers=false syntax=java]
 javac DotCom.java DotComBust.java GameHelper.java
[/code]

Saludos


-----------------------------------
Shell
Lunes, 08 Junio 2020, 15:25

Re: Cuando No Usas Un Magnifico Editor Y Haces Las Cosas Más Manualmente
-----------------------------------
¿ Qué pasaría si nuestro árbol de proyecto fuera como este ?.

[quote]
ejerciciosheadfirst/
├── capitulo01
├── capitulo02
├── capitulo03
├── capitulo04
├── capitulo05
├── capitulo06
[/quote]

Y estando trabajando con los ejercicios del captitulo06, necesitase usar un archivo que se encuentre en el capitulo03..un archivo .class, ojo. 
"Y no quiero copiarlo al directorio del capitulo06".  :roll:

Pues "puede" que los archivos .class deban estar todos en un directorio "común" y a la hora de compilar se le diga donde se encuentra esos archivos
.class..

Quizás con esta opción:

[quote]
 --class-path <path>, -classpath <path>, -cp <path>
        Specify where to find user class files and annotation processors
  -d <directory>               Specify where to place generated class files
[/quote]

Entonces con "-d" le decimos el lugar donde se van a crear los .class y con "-c" desde donde tienen que usarse.

¿ A que nivel de directorio te "situarías" para compilar archivos .java que se encuentran en capitulo06 (paquete) y quieres usar archivos ".class" del directorio capitulo03 (paquete). ?.  :roll: 

Si yo tengo en el paquete o directorio capitulo06 estos archivos: 

[quote]
DotCom.java 
DotComBust.java 
GameHelper.java
[/quote]

Y  en el directorio o paquete capitulo03 este archivo:

[quote]
MyFunctions.class
[/quote]

Como ¿ lo añadirías en la línea de comando de javac ?.  :-D 
¿ Cómo va a variar según el directorio que nos encontremos ?...
¿ Nos iríamos al padre de todos "ejerciciosheadfirst/" ?

Que cosas se me ocurren más raras a estas horas... :-P  :-D 

Saludos


