<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Linux Hispano &#187; java</title> <atom:link href="http://www.linuxhispano.net/etiqueta/java/feed/" rel="self" type="application/rss+xml" /><link>http://www.linuxhispano.net</link> <description>Noticias, tira, podcast, juegos, Linux y software libre</description> <lastBuildDate>Fri, 10 Feb 2012 14:00:58 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Curso Java &#8211; 8. Bucles</title><link>http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/</link> <comments>http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/#comments</comments> <pubDate>Thu, 15 Sep 2011 10:55:08 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[bucles]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[java]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7470</guid> <description><![CDATA[Un bucle es una sentencia que realiza varias veces un conjunto de código. Se repite tantas veces hasta que la condición asignada al bucle deje de cumplirse. Los bucles se utilizan para hacer una acción repetida sin tener que escribir &#8230; <a
href="http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><a
href="http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/bucle/" rel="attachment wp-att-7471"><img
class="aligncenter size-full wp-image-7471" title="bucle" src="http://www.linuxhispano.net/wp-content/uploads/2011/09/bucle.png" alt="" width="258" height="252" /></a></p><p>Un bucle es una sentencia que realiza varias veces un conjunto de código. Se repite tantas veces hasta que la condición asignada al bucle deje de cumplirse.</p><p>Los bucles se utilizan para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.</p><h2><strong>For</strong></h2><p>El bucle <i>for</i> es la estructura de control donde se indica un número mínimo de iteraciones. Es la más popular y utilizadas en casi todos los lenguajes de programación iterativos.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> class EjemploFor<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int i=0; i&lt;10; i++)<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Número: &#34; + (i + 1) + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><p></p><h2><strong>While</strong></h2><p>El bucle <i>while</i> es la estructura de control cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> class EjemploWhile<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int i = 0;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;while (i &lt; 10)<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Número: &#34; + (i + 1) + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;i++;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><p></p><h2><strong>Do + While</strong></h2><p>El las sentencias <i>do</i> y <i>while</i> es la estructura donde se comprueba la condición al final del cuerpo del bucle. A diferencia del anterior, donde sólo se utiliza <i>while</i>, primero se ejecuta el conjunto de código y después se evalúa si se repite dicho conjunto o no. A veces esto resulta más adecuado.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> class EjemploDoWhile<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int i = 0;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;do<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Número: &#34; + (i + 1) + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;i++;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} while (i &lt; 10);<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><p></p><h2><strong>Break, Continue</strong></h2><p>Estas dos palabras reservadas permiten un control de flujo en los bucles. Son útiles para ahorrar tiempo de procesamiento en las iteraciones redundantes.</p><p>Con <i>break</i> terminas el bucle aunque no se haya cumplido la condición de fin de bucle.</p><p>Con <i>continue</i> dejas de ejecutar el conjunto de código restante para evaluar de nuevo el bucle.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> class EjemploBreakContinue<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Para en el número 5:&#34;);</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int i=0; i&lt;10; i++)<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (i == 5) break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Número: &#34; + (i + 1) + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;\nSe salta el número 5:&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int i = 0;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;while (i &lt; 10)<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;i++;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (i == 5) continue;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Número: &#34; + i + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><p></p><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/">7. Condicionales</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Curso Java &#8211; 7. Condicionales</title><link>http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/</link> <comments>http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/#comments</comments> <pubDate>Wed, 14 Sep 2011 13:41:24 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[condicionales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[java]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7428</guid> <description><![CDATA[En programación, y por tanto en Java, una sentencia condicional es, como su nombre indica, una instrucción que se puede ejecutar o no en función del valor de dicha condición. Con estas sentencias puedes crear aplicaciones más complejas debido al &#8230; <a
href="http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><a
href="http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/if/" rel="attachment wp-att-7429"><img
class="aligncenter size-full wp-image-7429" title="if" src="http://www.linuxhispano.net/wp-content/uploads/2011/09/if.png" alt="" width="256" height="252" /></a></p><p>En programación, y por tanto en Java, una sentencia condicional es, como su nombre indica, una instrucción que se puede ejecutar o no en función del valor de dicha condición.</p><p>Con estas sentencias puedes crear aplicaciones más complejas debido al factor condicionante de la variable que se evalúa. Si sólo utilizas operadores estarás usando, prácticamente, una calculadora.</p><p>Los condicionales representan, junto con los bucles que se verá en el siguiente capítulo, la base de la programación estructurada.</p><h2><strong>If</strong></h2><p>Es la sentencia condicional más simple y evalúa la condición para realizar las pertinentes operaciones.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> public class EjemploIf<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int edad = 20;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (edad &lt; 18) System.out.println(&#34;Eres menor de edad.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (edad &gt;= 18) System.out.println(&#34;Eres mayor de edad.&#34;);<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><h2><strong>If + Else</strong></h2><p>Es la sentencia condicional simple junto con la sentencia <i>else</i>. Si no se cumple <i>if</i>, automáticamente se ejecuta la sentencia <i>else</i>.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> public class EjemploElse<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int edad = 16;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (edad &lt; 18) System.out.println(&#34;Eres menor de edad.&#34;);<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else System.out.println(&#34;Eres mayor de edad.&#34;);<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><h2><strong>If + Else If + Else</strong></h2><p>Si necesitas utilizar varias condiciones para evaluar una variable la mejor opción es usar las sentencias <i>else if</i>. Se analizan por orden las diferentes condiciones y cuando se cumple un <i>else if</i> las demás se dejan de verificar permitiendo que el programa sea más rápido en su ejecución.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> public class EjemploIfElse<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int puntos = 76;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String nota = new String();</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (puntos &gt;= 90) nota = &#34;Sobresaliente&#34;;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else if (puntos &gt;= 70) nota = &#34;Notable&#34;;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else if (puntos &gt;= 60) nota = &#34;Bien&#34;;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else if (puntos &gt;= 50) nota = &#34;Suficiente&#34;;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else nota = &#34;Suspenso&#34;;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(&#34;Tu nota es: &#34; + nota + &#34;.&#34;);<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><h2><strong>Switch</strong></h2><p>La sentencia <i>switch</i> es equivalente a utilizar las sentencias <i>if</i>, <i>else if</i> y <i>else</i>. La diferencia radica en que favorece la legibilidad y rapidez en la programación.</p><h3>Ejemplo</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> public class EjemploSwitch<br
/> {<br
/> &#160;&#160;&#160;&#160;public static void main(String[] args)<br
/> &#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int fecha = 8;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String mes;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch (fecha)<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 1:&#160;&#160;mes = &#34;Enero&#34;;&#160;&#160;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 2:&#160;&#160;mes = &#34;Febrero&#34;;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 3:&#160;&#160;mes = &#34;Marzo&#34;;&#160;&#160;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 4:&#160;&#160;mes = &#34;Abril&#34;;&#160;&#160;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 5:&#160;&#160;mes = &#34;Mayo&#34;;&#160;&#160;&#160;&#160;&#160;&#160; break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 6:&#160;&#160;mes = &#34;Junio&#34;;&#160;&#160;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 7:&#160;&#160;mes = &#34;Julio&#34;;&#160;&#160;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 8:&#160;&#160;mes = &#34;Agosto&#34;;&#160;&#160;&#160;&#160; break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 9:&#160;&#160;mes = &#34;Septiembre&#34;; break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 10: mes = &#34;Octubre&#34;;&#160;&#160;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 11: mes = &#34;Noviembre&#34;;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case 12: mes = &#34;Diciembre&#34;;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;default: mes = &#34;Inválido&#34;;&#160;&#160;break;<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br
/> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(mes);<br
/> &#160;&#160;&#160;&#160;}<br
/> }</div><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/">6. Operadores</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/09/15/curso-java-8-bucles/">8. Bucles</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Java 7 disponible</title><link>http://www.linuxhispano.net/2011/07/29/java-7-disponible/</link> <comments>http://www.linuxhispano.net/2011/07/29/java-7-disponible/#comments</comments> <pubDate>Fri, 29 Jul 2011 11:04:37 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[7]]></category> <category><![CDATA[características]]></category> <category><![CDATA[disponible]]></category> <category><![CDATA[features]]></category> <category><![CDATA[java]]></category> <category><![CDATA[novedades]]></category> <category><![CDATA[oracle]]></category> <category><![CDATA[siete]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=6972</guid> <description><![CDATA[Hablamos hace ya casi dos años de las novedades que tendría esta versión. Pues bien, ya se encuentra disponible Java 7. Quizás no lo consideréis importante, pero el caso es que si os fijáis en las nuevas features y el hecho &#8230; <a
href="http://www.linuxhispano.net/2011/07/29/java-7-disponible/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Hablamos hace ya casi dos años de las <a
target="_blank" href="http://www.linuxhispano.net/2009/11/26/novedades-en-java-7/">novedades que tendría esta versión</a>. Pues bien, ya se encuentra disponible <a
href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java 7</a>.</p><p><img
class="aligncenter size-full wp-image-6973" title="java_7_linux_hispano" src="http://www.linuxhispano.net/wp-content/uploads/2011/07/java_7_linux_hispano.jpg" alt="" width="460" height="626" /></p><p>Quizás no lo consideréis importante, pero el caso es que si os fijáis en las nuevas <em>features</em> y el hecho de que es el primer gran lanzamiento de versión desde que Java es de Oracle, lo es.</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/07/29/java-7-disponible/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Instalar Apache Tomcat 7</title><link>http://www.linuxhispano.net/2011/05/20/instalar-apache-tomcat-7/</link> <comments>http://www.linuxhispano.net/2011/05/20/instalar-apache-tomcat-7/#comments</comments> <pubDate>Fri, 20 May 2011 18:02:55 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[java]]></category> <category><![CDATA[jsp]]></category> <category><![CDATA[servlet]]></category> <category><![CDATA[tomcat]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=6313</guid> <description><![CDATA[JSP y los servlets de Java son dos de esas tecnologías que parece que con el tiempo no han tenido el auge esperado (o al menos esa es mi sensación). De todas formas, siguen siendo dos alternativas muy relacionadas entre &#8230; <a
href="http://www.linuxhispano.net/2011/05/20/instalar-apache-tomcat-7/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
target="_blank" href="http://es.wikipedia.org/wiki/JavaServer_Pages" target="_blank">JSP</a> y los <a
target="_blank" href="http://es.wikipedia.org/wiki/Java_Servlet" target="_blank">servlets</a> de <a
target="_blank" href="http://es.wikipedia.org/wiki/Plataforma_Java" target="_blank">Java</a> son dos de esas tecnologías que parece que con el tiempo no han tenido el auge esperado (o al menos esa es mi sensación). De todas formas, siguen siendo dos alternativas muy relacionadas entre sí y muy válidas a la vez, para tener en cuenta si queremos llevar a cabo un desarrollo web.</p><p>El servidor más famoso para estas tecnologías es <a
target="_blank" href="http://es.wikipedia.org/wiki/Tomcat" target="_blank">Apache Tomcat</a>. Veamos cómo instalarlo de forma manual en cualquier distribución. Digo manual porque en los repositorios de Ubuntu no aparece ningún paquete preparado de esta versión, la 7. Suponemos que tenéis instalado Java en vuestro equipo.</p><p><strong>Descarga y colocación en directorio destino</strong></p><p>Lo primero será acceder a <a
target="_blank" href="http://tomcat.apache.org/" target="_blank">la web oficial de Tomcat</a> y en el menú de la izquierda elegir <a
target="_blank" href="http://tomcat.apache.org/download-70.cgi" target="_blank">descargas de la versión 7.0</a>. Bajamos a <em>Binary distributions </em>y elegimos dentro de <em>Core</em>, la versión .tar.gz.</p><p>Lo descomprimimos con nuestro interfaz gráfico o mediante comando:</p><pre>$ tar xvzf apache-tomcat-7.1.4.tar.gz</pre><p>Y continuamos el proceso. Creamos un directorio adecuado para albergarlo:</p><pre>$ sudo mkdir /usr/share/tomcat7</pre><p>Ahora es el momento de mover el contenido:</p><pre>$ sudo mv apache-tomcat-7.1.4/ /usr/share/tomcat7</pre><p><strong>Configuración de variables de entorno</strong></p><p>Ahora debemos configurar las variable de entorno, pero antes, debemos saber dónde tenemos instalado tanto la <a
target="_blank" href="http://es.wikipedia.org/wiki/Java_Development_Kit" target="_blank">JDK (Java Development Kit)</a> como la <a
target="_blank" href="http://es.wikipedia.org/wiki/JRE" target="_blank">JRE (Java Runtime Environment)</a>. Para ello, usamos la información adquirida en esta entrada de cómo saber la ruta de los ficheros que instala un paquete. Los paquetes a buscar serán en este caso (si usáis la JDK y la JRE de Sun/Oracle) los siguientes:</p><ul><li>sun-java6-jdk</li><li>sun-java6-jre</li></ul><p>Las rutas en mi caso son:</p><ul><li>sun-java6-jdk: /usr/lib/jvm/java-6-sun-1.6.0.24/jre</li><li>sun-java6-jre: /usr/lib/jvm/java-6-sun-1.6.0.24/jre</li></ul><p>Ahora agregamos al fichero de arranque del sistema (para editarlo tenéis la orden abajo):</p><pre>$ sudo gedit /usr/share/tomcat7/bin/catalina.sh</pre><p>Las siguientes líneas:</p><pre>#!/bin/sh
JAVA_HOME="/ruta/jdk"
JRE_HOME="/ruta/jre"
...</pre><p><strong>Configuración de los usuarios</strong></p><p>Editamos ahora el fichero: /usr/share/tomcat7/conf/tomcat-users.xml para introducir un nuevo usuario que será el gestor de la administración web:</p><pre>&lt;?xml version='1.0' encoding='utf-8'?&gt;
&lt;tomcat-users&gt;
 &lt;role rolename="manager-gui"/&gt;
 &lt;user username="usuario" password="contrasena" roles="manager-gui"/&gt;
&lt;/tomcat-users&gt;</pre><p><strong>Arranque y parada del servidor</strong></p><p><strong> </strong>Arranque:</p><pre>sudo /usr/share/tomcat7/bin/startup.sh</pre><p>Parada:</p><pre>sudo /usr/share/tomcat7/bin/shutdown.sh</pre><p>Una vez hecho esto (el arranque), podemos acceder a http://localhost:8080 (el puerto por el por defecto escucha Tomcat) y comprobar que el proceso ha funcionado correctamente:</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/05/tomcat.png"><img
class="aligncenter size-full wp-image-6321" title="tomcat" src="http://www.linuxhispano.net/wp-content/uploads/2011/05/tomcat.png" alt="tomcat" width="550" height="370" /></a></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/05/20/instalar-apache-tomcat-7/feed/</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Curso Java &#8211; 6. Operadores</title><link>http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/</link> <comments>http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/#comments</comments> <pubDate>Tue, 22 Mar 2011 17:39:18 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[java]]></category> <category><![CDATA[manual]]></category> <category><![CDATA[operadores]]></category> <category><![CDATA[tutorial]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=5713</guid> <description><![CDATA[Tanto en matemáticas como en Java, un operador es un símbolo que representa una operación entre un conjunto de variables o números. Junto con las variables y los operadores ya puedes empezar a resolver fórmulas y definiciones matemáticas muy fácilmente. &#8230; <a
href="http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Tanto en matemáticas como en Java, un operador es un símbolo que representa una operación entre un conjunto de variables o números.</p><p>Junto con las variables y los operadores ya puedes empezar a resolver fórmulas y definiciones matemáticas muy fácilmente.</p><p>A continuación se agrupará los operandos por <strong>orden decreciente de prioridad</strong>, es decir, los primeros operadores son los más preferentes y así sucesivamente hasta el último que es el de menos prioridad.</p><h3>Paréntesis</h3><p>Si bien no son operadores hay que saber que todo lo que haya entre paréntesis tiene la primera prioridad. Los símbolos que lo representan son: <b>(</b> y <b>)</b>.</p><h3>Operadores unarios</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> <span
style="font-weight: normal;"><i>variable</i></span>++&nbsp;&nbsp;&nbsp;&nbsp;Posincremento en uno la <i>variable</i><br
/> <span
style="font-weight: normal;"><i>variable</i></span>&#45;&#45;&nbsp;&nbsp;&nbsp;&nbsp;Posdecremento en uno la <i>variable</i><br
/> ++<span
style="font-weight: normal;"><i>variable</i></span>&nbsp;&nbsp;&nbsp;&nbsp;Preincremento en uno la <i>variable</i><br
/> &#45;&#45;<span
style="font-weight: normal;"><i>variable</i></span>&nbsp;&nbsp;&nbsp;&nbsp;Predecremento en uno la <i>variable</i><br
/> +<span
style="font-weight: normal;"><i>variable</i></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Da valor positivo a la <i>variable</i><br
/> -<span
style="font-weight: normal;"><i>variable</i></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Da valor negativo a la <i>variable</i><br
/> &#126;<span
style="font-weight: normal;"><i>variable</i></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Complemento en bits de <i>variable</i>. Sólo enteros.<br
/> <span
style="font-weight: normal;"><i>variable</i></span>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Complemento de <i>variable</i>. Sólo en <i>boolean</i>.</div><p></p><h3>Operadores aritméticos</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> *&nbsp;&nbsp;&nbsp;&nbsp;Multiplicación<br
/> /&nbsp;&nbsp;&nbsp;&nbsp;División<br
/> %&nbsp;&nbsp;&nbsp;&nbsp;Módulo<br
/> +&nbsp;&nbsp;&nbsp;&nbsp;Suma<br
/> -&nbsp;&nbsp;&nbsp;&nbsp;Resta</div><p></p><h3>Operadores de desplazamiento</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> >>&nbsp;&nbsp;&nbsp;Desplazamiento de bits a la derecha<br
/> <<&nbsp;&nbsp;&nbsp;Desplazamiento de bits a la izquierda</div><p></p><h3>Operadores relacionales y de igualdad</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> <&nbsp;&nbsp;&nbsp;&nbsp;Menor que<br
/> >&nbsp;&nbsp;&nbsp;&nbsp;Mayor que<br
/> <=&nbsp;&nbsp;&nbsp;Menor o igual que<br
/> >=&nbsp;&nbsp;&nbsp;Mayor o igual que<br
/> ==&nbsp;&nbsp;&nbsp;Igual que<br
/> !=&nbsp;&nbsp;&nbsp;Distinto de</div><p></p><h3>Operadores a nivel de bit</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> &#38;&nbsp;&nbsp;&nbsp;&nbsp;Operación de AND a nivel de bits<br
/> &#94;&nbsp;&nbsp;&nbsp;&nbsp;Operación de OR exclusivo a nivel de bits<br
/> &#124;&nbsp;&nbsp;&nbsp;&nbsp;Operación de OR a nivel de bits</div><p></p><h3>Operadores lógicos</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> &#38;&#38;&nbsp;&nbsp;&nbsp;Operación de AND<br
/> &#124;&#124;&nbsp;&nbsp;&nbsp;Operación de OR</div><p></p><h3>Operadores ternarios <em>(<b>?</b> y <b>:</b> van juntos)</em></h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> &#63;&nbsp;&nbsp;&nbsp;&nbsp;Se evalúa la variable si devuelve <i>true</i> en la condición<br
/> &#58;&nbsp;&nbsp;&nbsp;&nbsp;Se evalúa la variable si devuelve <i>false</i> en la condición</div><p></p><h3>Operadores de asignación</h3><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> =&nbsp;&nbsp;&nbsp;&nbsp;Asigna un valor a la variable, <i>variable</i> = <i>valor</i><br
/> *=&nbsp;&nbsp;&nbsp;Igual a <i>variable</i> = <i>variable</i> * <i>valor</i><br
/> /=&nbsp;&nbsp;&nbsp;Igual a <i>variable</i> = <i>variable</i> / <i>valor</i><br
/> +=&nbsp;&nbsp;&nbsp;Igual a <i>variable</i> = <i>variable</i> + <i>valor</i><br
/> -=&nbsp;&nbsp;&nbsp;Igual a <i>variable</i> = <i>variable</i> &#8211; <i>valor</i></div><p></p><h2><strong>Ejemplo</strong></h2><p>Este es un sencillo ejemplo que pone en práctica los operadores. Comprueba este ejemplo y práctica con los diferentes operadores existentes en Java.</p><div
style="background-color: #eee; font-weight: bold; color: #222; font-family: monospace;  text-align: left;"> class EjemploOperadores {</p><p>&nbsp;&nbsp;&nbsp;&nbsp;public static void main (String[] args) {</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int resultado = 1 + 2; // Ahora &#8216;resultado&#8217; vale 3<br
/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(resultado);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado = resultado &#45; 1; // Ahora &#8216;resultado&#8217; vale 2<br
/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(resultado);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado = resultado * 2; // Ahora &#8216;resultado&#8217; vale 4<br
/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(resultado);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado /= 2; // Ahora &#8216;resultado&#8217; vale 2<br
/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(resultado);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado = resultado + 8; // Ahora &#8216;resultado&#8217; vale 10<br
/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado = resultado % 7; // Ahora &#8216;resultado&#8217; vale 3</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultado = resultado > 1 ? 10 : 20; // Ahora vale 10</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(resultado);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;}<br
/> }</p></div><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/">5. Variables</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/09/14/curso-java-7-condicionales/">7. Condicionales</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Curso Java &#8211; 5. Variables</title><link>http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/</link> <comments>http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/#comments</comments> <pubDate>Fri, 04 Mar 2011 21:06:14 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[5]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[java]]></category> <category><![CDATA[variables]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=5471</guid> <description><![CDATA[Una variable es un símbolo que representa un elemento de un conjunto dado. Por ejemplo en Java, si el conjunto son todos los caracteres la variable será una cadena. Sin embargo si el conjunto son todos los números enteros será &#8230; <a
href="http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/variable/" rel="attachment wp-att-5472"><img
src="http://www.linuxhispano.net/wp-content/uploads/2011/03/variable.png" alt="" title="variable" width="450" height="69" class="aligncenter size-full wp-image-5472" /></a></p><p>Una variable es un símbolo que representa un elemento de un conjunto dado. Por ejemplo en Java, si el conjunto son todos los caracteres la variable será una cadena. Sin embargo si el conjunto son todos los números enteros será una variable entera. También ocurre con las clases y los objetos. Por ejemplo el conjunto de la clase <em>Coche</em> tendrá una variable objeto denominada, por ejemplo, <em>seatIbiza</em>.</p><p>El lenguaje de programación Java es de tipo estático, lo que significa que todas las variables debes declararlas antes de usarlas. Esto implica que debes de indicar el tipo de la variable, el nombre y, opcionalmente, asignarle un valor.</p><h2><strong>Tipos de variables</strong></h2><p>En Java las variables se clasifican en cuatro categorías:</p><ul><li><strong>Instancias</strong>: son los objetos definidos de las clases. Una clase puede tener tantos objetos, o instancias, como se desee. Ejemplo:</li><div
style="background-color: #eee; margin-bottom: 15px; font-weight: bold; color: #222; text-align: left; font-family: monospace;"> Coche <em>seatIbiza</em> = new Coche();<br/>Coche <em>kiaCeed</em> = new Coche();</div><li><strong>Estáticas</strong>: son las variables propias de la clase y no de las instancias, u objetos, de la misma. Ejemplo:</li><div
style="background-color: #eee; margin-bottom: 15px; font-weight: bold; color: #222; text-align: left; font-family: monospace;"> static int <em>capacidadMaxima</em> = 9;</div><li><strong>Locales</strong>: son variables temporales cuya vida útil termina al final de la función. Ejemplo:</li><div
style="background-color: #eee; margin-bottom: 15px; font-weight: bold; color: #222; text-align: left; font-family: monospace;"> void funcion()<br
/> {<br
/> &nbsp;&nbsp;int <em>longitud</em> = 2.4;<br
/> <em>&nbsp;&nbsp;//Se opera con &#8216;longitud&#8217;,</em><br
/> <em>&nbsp;&nbsp;//y al llegar a &#8216;}&#8217; desaparece la variable.</em><br
/> }</div><li><strong>Parámetros</strong>: son variables que reciben una función, o método, teniendo un comportamiento de variable local. Ejemplo:</li><div
style="background-color: #eee; margin-bottom: 15px; font-weight: bold; color: #222; text-align: left; font-family: monospace;"> int devolverValor(int <em>valor</em>)<br
/> {<br
/> &nbsp;&nbsp;return <em>valor</em>;<br
/> }</div></ul><h2><strong>Nomenclatura</strong></h2><p>Las reglas y las convenciones para nombrar las variables se pueden resumir de la siguiente manera:</p><ul><li>Los nombres de variables distinguen entre mayúsculas y minúsculas.</li><li>El primer carácter de la variable tiene que ser una letra, el signo de dólar (<em>$</em>), o el carácter de subrayado (_). Aunque estos dos últimos signos no se recomiendan usarlos.</li><li>Los siguientes caracteres pueden ser letras, dígitos, signos de dólar, o caracteres de subrayado en cualquier orden.</li><li>Si el nombre que elijas se compone de una sola palabra, deletrea esa palabra en letras minúsculas. Si se compone de más de una palabra, escribe en mayúscula la primera letra de cada palabra posterior.</li></ul><h2><strong>Primitivas</strong></h2><p>En Java, existen ocho primitivas básicas para las variables:</p><ul><li><strong><em>byte</em></strong>: tipo de datos de 8 <em>bits</em> con un valor máximo de 127 y un valor mínimo de -128.</li><li><strong><em>short</em></strong>: tipo de datos de 16 <em>bits</em> con un valor máximo de 32767 y un valor mínimo de -32768.</li><li><strong><em>int</em></strong>: tipo de datos de 32 <em>bits</em> con un valor máximo de 2 millones, aproximadamente y un valor mínimo de menos dos millones aproximadamente. Esta primitiva es muy utilizada para representar números enteros.</li><li><strong><em>long</em></strong>: tipo de datos de 64 <em>bits</em>. Esta primitiva utilizada cuando <em>int</em> no satisface los valores máximos requeridos.</li><li><strong><em>float</em></strong>: tipos de datos de 32 <em>bits</em> en punto flotante IEEE 754. Esta primitiva es muy utilizada para representar números reales.</li><li><strong><em>double</em></strong>:  tipos de datos de 64 <em>bits</em> en punto flotante IEEE 754. Permite valores mucho mayores que <em>float</em>.</li><li><strong><em>boolean</em></strong>: primitiva con dos posibles valores: <em>true</em> o <em>false</em>.</li><li><strong><em>char</em></strong>:  tipos de datos de 16 <em>bits</em> en Unicode. Utilizada para representar caracteres.</li></ul><h2><strong><em>Arrays</em></strong></h2><p>En Java, un <em>array</em> es un contenedor que almacena un número fijo de valores de un solo tipo. La longitud de un <em>array</em> se establece cuando se crea dicho <em>array</em>. Después de la creación, su longitud es fija.<br
/> <a
href="http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/array/" rel="attachment wp-att-5526"><img
src="http://www.linuxhispano.net/wp-content/uploads/2011/03/array.gif" alt="" title="array" width="400" height="145" class="aligncenter size-full wp-image-5526" /></a></p><h2><strong>Ejemplo</strong></h2><p>Aquí tenéis un ejemplo para que veáis como funcionan los <em>arrays</em>. A partir de este código podéis crear nuevas variables o modificar las que están para que os desenvolváis un poco con las variables en Java. Aquí está el código:</p><div
style="background-color: #eee; font-weight: bold; color: #222; text-align: left; font-family: monospace;"> class ArrayDemo {<br/><br
/> &nbsp;&nbsp;public static void main(String[] args) {<br/><br
/> &nbsp;&nbsp;&nbsp;&nbsp;int[] unArray; <em>// Declara an array de tipo int</em><br/><br
/> &nbsp;&nbsp;&nbsp;&nbsp;unArray = new int[5]; <em>// Reserva memoria para 10 enteros</em><br/></p><p>&nbsp;&nbsp;&nbsp;&nbsp;unArray[0] = 100; <em>// Inicializa el primer elemento</em><br
/> &nbsp;&nbsp;&nbsp;&nbsp;unArray[1] = 200; <em>// Inicializa el segundo elemento</em><br
/> &nbsp;&nbsp;&nbsp;&nbsp;unArray[2] = 300; <em>// etc.</em><br
/> &nbsp;&nbsp;&nbsp;&nbsp;unArray[3] = 400;<br
/> &nbsp;&nbsp;&nbsp;&nbsp;unArray[4] = 500;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;Elemento en el índice 0: &#8221; + unArray[0]);<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;Elemento en el índice 1: &#8221; + unArray[1]);<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;Elemento en el índice 2: &#8221; + unArray[2]);<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;Elemento en el índice 3: &#8221; + unArray[3]);<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;Elemento en el índice 4: &#8221; + unArray[4]);<br
/> &nbsp;&nbsp;}<br
/> }</p></div><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/">4. Explicación detallada del primer programa</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/03/22/curso-java-6-operadores/">6. Operadores</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Cambiar formato de fecha en Alfresco</title><link>http://www.linuxhispano.net/2011/02/24/cambiar-formato-de-fecha-en-alfresco/</link> <comments>http://www.linuxhispano.net/2011/02/24/cambiar-formato-de-fecha-en-alfresco/#comments</comments> <pubDate>Thu, 24 Feb 2011 10:45:46 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[alfresco]]></category> <category><![CDATA[fecha]]></category> <category><![CDATA[formato]]></category> <category><![CDATA[java]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=5342</guid> <description><![CDATA[Si trabajáis en un centro de cierto tamaño y tenéis necesidad de tener una gestión documental avanzada, una de las mejores soluciones que podéis utilizar es Alfresco (que por supuesto es software libre). Ya hablaremos otro día más y mejor &#8230; <a
href="http://www.linuxhispano.net/2011/02/24/cambiar-formato-de-fecha-en-alfresco/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Si trabajáis en un centro de cierto tamaño y tenéis necesidad de tener una gestión documental avanzada, una de las mejores soluciones que podéis utilizar es <a
target="_blank" href="http://es.wikipedia.org/wiki/Alfresco" target="_blank">Alfresco</a> (que por supuesto es software libre). Ya hablaremos otro día más y mejor de este software.</p><p>Hoy os comento cómo hacer que<strong> el formato de fecha</strong> aparezca bien en la traducción al español. El fichero de la traducción tiene un bug que hará que las fechas se muestren sin el año (todos sabemos lo vital de ese dato en un gestor documental).</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/02/alfresco.jpg"><img
class="aligncenter size-full wp-image-5349" title="alfresco" src="http://www.linuxhispano.net/wp-content/uploads/2011/02/alfresco.jpg" alt="" width="400" height="115" /></a></p><p>Para solventar este problema deberéis acceder al fichero: <em>webcliente_es_ES.propierties</em> situado en <em>/Alfresco/tomcat/shared/classes/alfresco/messages </em>y modificar las siguientes líneas:</p><pre>date_pattern=dd MM aaaa
date_time_pattern=dd MM aaaa HH:mm</pre><p>Por las siguientes líneas (tened en cuenta que la &#8220;aaaa&#8221; no indica nada en los formatos de fecha, sino que realmente se refería a &#8220;yyyy&#8221;):</p><pre>date_pattern=dd MM yyyy
date_time_pattern=dd MM yyyy HH:mm</pre><p>Luego os tocar parar el servidor y volver a lanzarlo, tras esto ya tendréis el problema resuelto.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/02/24/cambiar-formato-de-fecha-en-alfresco/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Curso Java &#8211; 4. Explicación detallada del primer programa</title><link>http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/</link> <comments>http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/#comments</comments> <pubDate>Tue, 11 Jan 2011 03:19:18 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[detallada]]></category> <category><![CDATA[explicacion]]></category> <category><![CDATA[java]]></category> <category><![CDATA[primer programa]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=4878</guid> <description><![CDATA[En este episodio del curso se explicará detalladamente el primer programa en lenguaje Java creado en el capítulo anterior. Este primer programa era el típico &#8216;Hola mundo&#8217; donde se mostraba la frase &#8216;¡Hola mundo!&#8217; en pantalla: public class HolaMundo { &#8230; <a
href="http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>En este episodio del curso se explicará detalladamente el primer programa en lenguaje Java creado en el <a
href="http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/">capítulo anterior</a>. Este primer programa era el típico &#8216;Hola mundo&#8217; donde se mostraba la frase &#8216;¡Hola mundo!&#8217; en pantalla:</p><p><div
style="background-color: #d7d7d7; color: #222222; font-weight: bold; font-size: 14px; text-align: left; font-family: 'Courier New', Courier, Monospace;">public class HolaMundo<br
/> {<br
/> &nbsp;&nbsp;public static void main(String[] args)<br
/> &nbsp;&nbsp;{<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;Hola mundo&#34;);<br
/> &nbsp;&nbsp;}<br
/> }</div></p><p>Si eres un principiante en <strong>Programación Orientado a Objetos (POO)</strong> esta explicación puede contener términos y definiciones que nunca habrás escuchado. En Wikipedia tienes un excelente artículo sobre POO que deberías leerlo antes de seguir con el curso: <a
target="_blank" href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos">Programación Orientada a Objetos</a>.</p><p>La explicación de este primer programa se hará línea por línea. La primera línea de código es:</p><p><div
style="background-color: #d7d7d7; color: #222222; font-weight: bold; font-size: 14px; text-align: left; font-family: 'Courier New', Courier, Monospace;">public class HolaMundo</div></p><p>En esta línea, la primera palabra reservada, <b>public</b>, es un <b>modificador de acceso</b> que determina quién puede acceder a las clases o propiedades y métodos de una clase. Una clase, que aparece como segunda palabra reservada <b>class</b>, es un conjunto de propiedades y métodos que definen un modelo, o plantilla, para crear objetos, o instancias, de ese tipo. Por último, <b>HolaMundo</b> es una variable, no una palabra reservada, que identifica a la clase pública que se ha creado. Resumiendo, esta línea define una clase pública identificada como HolaMundo.</p><p>La segunda línea de código es una llave. Las llaves en Java determinan el contenido de una clase, una función, una estructura, etc. En esta línea, esta llave abierta indica el inicio del contenido de la clase Holamundo que en este caso sólo estará compuesto por un método. La última línea de código, la llave cerrada, indica el fin del contenido de dicha clase. Las llaves de la línea 4 y 6 indican el contenido del método, o función, <b>main()</b>.</p><p>La tercera línea de código es:</p><p><div
style="background-color: #d7d7d7; color: #222222; font-weight: bold; font-size: 14px; text-align: left; font-family: 'Courier New', Courier, Monospace;">public static void main(String[] args)</div></p><p>En esta línea de código se define una función, o método, pública y estática denominada <b>main()</b>. La palabra reservada <b>static</b> se utiliza para definir las propiedades o los métodos que pertenecen a una clase, en este caso la clase Holamundo, en vez de pertenecer a un objeto, o instancia, de esa clase. El tipo de dato <b>void</b> se usa para indicar a la función, o método, que no devuelva parámetros. Todo programa en Java necesita una función, o método, denominada <b>main()</b> para establecer el inicio del programa. El contenido de dicha función, <b>String[] args</b>, define un vector de cadenas de caracteres donde recogerá los argumentos pasados en la ejecución del programa HolaMundo.</p><p>Por último, la antepenúltima línea de código es:</p><p><div
style="background-color: #d7d7d7; color: #222222; font-weight: bold; font-size: 14px; text-align: left; font-family: 'Courier New', Courier, Monospace;">System.out.println(&#34;Hola mundo&#34;);</div></p><p>Esto es una función contenida en la API de Java SE que imprime, <b>println()</b>, en la salida, <b>out</b>, de la consola, <b>System</b>, la cadena de caracteres: <b>¡Hola Mundo!</b>.</p><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/">3. Instalación y primer programa</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/03/04/curso-java-5-variables/">5. Variables</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Curso Java &#8211; 3. Instalación y primer programa</title><link>http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/</link> <comments>http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/#comments</comments> <pubDate>Mon, 13 Dec 2010 01:16:57 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[hola mundo]]></category> <category><![CDATA[instalación]]></category> <category><![CDATA[java]]></category> <category><![CDATA[primer programa]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=4612</guid> <description><![CDATA[En este capítulo vas a crear tu primer programa en Java, eso sí, antes debes instalar las herramientas necesarias. Personalmente te recomiendo la instalación en Linux. Instalación en Windows Lo primero que tienes que hacer es instalar el JDK. Estos &#8230; <a
href="http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
rel="attachment wp-att-4616" href="http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/hd-opendrive-blue-2/"><img
class="aligncenter size-full wp-image-4616" title="HD OpenDrive Blue" src="http://www.linuxhispano.net/wp-content/uploads/2010/12/HD-OpenDrive-Blue1.png" alt="" width="474" height="390" /></a>En este capítulo vas a crear tu primer programa en Java, eso sí, antes debes instalar las herramientas necesarias. Personalmente te recomiendo la instalación en Linux.</p><h2><strong>Instalación en Windows</strong></h2><p>Lo primero que tienes que hacer es instalar el <strong>JDK</strong>. Estos son los pasos:</p><ol><li>Entra en la sección de <a
target="_blank" href="http://oracle.com/technetwork/java">Java de Oracle</a>.</li><li>Pulsa en <a
target="_blank" href="http://oracle.com/technetwork/java/javase/downloads">Java SE</a><strong> </strong>que está en el apartado <strong>Technologies </strong>o<strong> Top Downloads</strong>.</li><li>Ahora pulsa en la imagen <strong>Java Download</strong>. Si quieres Java EE pulsa en <strong>Java EE Download</strong>.</li><li>Selecciona la <strong>Plataforma </strong>(Windows), el <strong>Lenguaje</strong> (Multi-language) y pulsa en <strong>Continue</strong>.</li><li>Ahora <strong>pulsa en el enlace de descarga </strong>y en unos minutos tendrás descargado el instalador.</li><li>Ejecuta el instalador y sigue los pasos hasta que tengas instalado, valga la redundancia, el JDK. Usa el <strong>directorio de JDK que viene por defecto</strong>.</li></ol><p>Instalado ya el JDK tienes que instalar el IDE <strong>Eclipse</strong>. Para ello sigue los siguientes pasos:</p><ol><li>Entra la sección de <a
target="_blank" href="http://eclipse.org/downloads/">descargas de Eclipse</a>.</li><li>Aparecerá una lista de distribuciones. Pulsa en el enlace de <strong>Eclipse IDE for Java Developers </strong>para instalar la versión básica de Eclipse. Si quieres usar además Java EE en vez de eso pulsa en <strong>Eclipse IDE for Java EE Developers</strong>. Ahora pulsa en la plataforma que quieres Eclipse, en este caso <strong>Windows</strong>.</li><li>Instala o descomprime Eclipse en tu directorio preferido.</li></ol><p>Como has instalado el JDK en el directorio por defecto, ya viene enlazado Eclipse con el JDK.</p><h2><strong>Instalación en Linux</strong></h2><p>La instalación en Linux es sencillísima, sólo hacen falta tres pasos:</p><ol><li>Entra en tu <strong>Sistema Gestor de Paquetes</strong>.</li><li>Busca e instala Eclipse.</li><li>Ya está.</li></ol><p>Automáticamente el gestor de paquetes buscará e instalará las dependencias necesarias (JDK) y los archivos sin tener que entrar página por página.</p><p>Si estás en Ubuntu entra en <strong>Aplicaciones, Accesorios, Terminal</strong>. Una vez dentro escribe <strong>sudo apt-get install eclipse</strong>. Introduce tu contraseña de administrador y en unos minutos lo tendrás todo instalado.</p><h2><strong>Primer programa</strong></h2><p>Instalado todo lo necesario es hora de crear tu primera aplicación en Java. Ahora mismo no se explicará qué significa cada línea de código ya que ahora lo que interesa es saber que todo funciona correctamente.</p><p>Para empezar <strong>abre Eclipse</strong>, si es la primera vez que lo abres Eclipse te solicitará que designes un <strong>Workspace</strong>, es decir, un directorio donde alojar tus programas y código fuente. Elige un directorio y pulsa en <strong>Ok</strong>. También te aparecerá una pantalla de bienvenida, para cerrarla dirígete a la pestaña <strong>Welcome</strong> y pulsa en el icono de cerrar: <strong>X</strong>.</p><p>Para crear tu primer programa haz lo siguiente:</p><ol><li>Pulsa en <strong>File, New, Java Project</strong>.</li><li>Ahora te aparecerá una ventana. En el campo <strong>Project Name </strong>escribe <strong>HolaMundo </strong>y después pulsa en <strong>Finish</strong>.</li><li>A la izquierda, en el <strong>Package Explorer</strong>, verás una carpeta que pone <strong>HolaMundo</strong>. Pulsa en ella con el <strong>botón derecho del ratón</strong>, después en <strong>New, Class</strong>.</li><li>Ahora te aparecerá una ventana. En el campo <strong>Name </strong>escribe <strong>HolaMundo </strong>y después pulsa en <strong>Finish</strong>.</li></ol><p>Ahora verás que has creado un nuevo archivo titulado <strong>HolaMundo.java</strong>. En ella escribe el siguiente código:</p><p><div
style="background-color: #d7d7d7; color: black; font-size: 14px; text-align: left; font-family: 'Courier New', Courier, Monospace;">public class HolaMundo<br
/> {<br
/> &nbsp;&nbsp;public static void main(String[] args)<br
/> &nbsp;&nbsp;{<br
/> &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;Hola mundo&#34;);<br
/> &nbsp;&nbsp;}<br
/> }</div></p><p>Guarda el archivo (<strong>File, Save</strong>) y ejecútalo en <strong>Run, Run</strong>. Ahora en la ventana <strong>Console</strong>, que se encuentra debajo del código, tienes que ver la frase <strong>Hola mundo</strong>.</p><p>¿Has visto la frase? ¡Enhorabuena! ¡Has creado tu primer programa en Java!</p><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2011/01/11/curso-java-4-explicacion-detallada-primer-programa/">4. Explicación detallada del primer programa</a>.<br
/> <strong>Anterior capítulo:</strong> <a
target="_blank" href="http://linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/">2. Material de trabajo</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/feed/</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Curso Java &#8211; 2. Material de trabajo</title><link>http://www.linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/</link> <comments>http://www.linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/#comments</comments> <pubDate>Wed, 01 Dec 2010 16:21:43 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[java]]></category> <category><![CDATA[manual]]></category> <category><![CDATA[tutorial]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=4478</guid> <description><![CDATA[Cuando uno empieza a programar debe conocer cuáles son las herramientas de trabajo que va a necesitar. Principalmente se necesitan tres componentes: el JDK, un IDE y la documentación en línea. JDK Como se indicó en el capítulo anterior, el &#8230; <a
href="http://www.linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
rel="attachment wp-att-4484" href="http://www.linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/12236148821970538641sivvus_tools-svg-med/"><img
class="aligncenter size-full wp-image-4484" title="herramientas" src="http://www.linuxhispano.net/wp-content/uploads/2010/12/12236148821970538641sivvus_tools.svg_.med_.png" alt="" width="300" height="235" /></a></p><p>Cuando uno empieza a programar debe conocer cuáles son las herramientas de trabajo que va a necesitar. Principalmente se necesitan tres componentes: el JDK, un IDE y la documentación en línea.</p><h2><strong>JDK</strong></h2><p>Como se indicó en el capítulo anterior, el JDK contiene todo lo necesario para empezar a programar. Debes recordar también que hay dos ediciones principales: la Standard Edition (SE) y, la más avanzada, la Enterprise Edition (EE). Las descargas oficiales se encuentran en <a
target="_blank" href="http://oracle.com/technetwork/indexes/downloads">Oracle Software Downloads</a>. En el siguiente capítulo aprenderás cómo instalar el JDK.</p><h2><strong>IDE</strong></h2><p>Un IDE (<em>Integrated Development Environment</em>) es una aplicación que contiene un editor de textos, un compilador y un depurador asociado además de otras herramientas integradas (como por ejemplo SVN). En esta aplicación es donde es más recomendable que codifiques. Aunque puedes hacerlo desde el editor de textos corriente, es recomendable utilizar el IDE debido a la gran capacidad que tiene de desarrollar programas escalables. Para Java existen dos IDE principales:</p><ul><li><a
target="_blank" href="http://eclipse.org">Eclipse</a>: programado por IBM y continuado por la Eclipse Foundation, es el IDE más popular de Java ya que dispone de una gran cantidad de <em>plugins </em>que lo hacen el más completo. Las grandes compañías, como Google, publican extensiones para este IDE. En este curso trabajaremos con este IDE y en el siguiente capítulo aprenderás cómo instalarlo.</li></ul><ul><li><a
target="_blank" href="http://netbeans.org">Netbeans</a>: programado por Sun y continuado por Oracle, es el IDE oficial de Java. La principal ventaja de este IDE es que vienen muchas cosas integradas, como por ejemplo el editor visual de aplicaciones. Para muchos es el mejor aunque todos reconocen que es un IDE muy pesado y lento.</li></ul><h2><strong>Documentación en línea</strong></h2><p>Con el JDK y el IDE lo tienes todo, sin embargo, te falta lo más importante, una buena documentación en línea. A menos que conozcas todas las clases, métodos y propiedades de cada una de las API te hará falta una buena documentación en línea. Los principales documentos son:</p><ul><li><a
target="_blank" href="http://download.oracle.com/javase/6/docs/api/">API Java SE 6</a>.</li></ul><ul><li><a
target="_blank" href="http://download.oracle.com/javaee/6/api/">API Java EE 6</a>.</li></ul><ul><li><a
target="_blank" href="http://download.oracle.com/javase/tutorial/">Tutorials of Java SE 6</a>.</li></ul><ul><li><a
target="_blank" href="http://download.oracle.com/javaee/6/tutorial/doc/">Tutorials of Java EE 6</a>.</li></ul><p>Si conoces alguno más y que merezca la pena, notifícalo en los comentarios por favor, ¡gracias!</p><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
href="http://www.linuxhispano.net/2010/12/13/curso-java-3-instalacion-y-primer-programa/">3. Instalación y primer programa</a>.<br
/> <strong>Anterior capítulo:</strong> <a
href="http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/">1. Introducción</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Curso Java &#8211; 1. Introducción</title><link>http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/</link> <comments>http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/#comments</comments> <pubDate>Sun, 28 Nov 2010 03:11:39 +0000</pubDate> <dc:creator>Manuel Ignacio López Quintero</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[introduccion]]></category> <category><![CDATA[java]]></category> <category><![CDATA[lenguaje]]></category> <category><![CDATA[programación]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=4347</guid> <description><![CDATA[A raíz del espléndido curso de C# con Mono iniciado por Carazo, un servidor se ha atrevido a realizar lo mismo pero con el lenguaje de programación Java. Se pretenderá que sea lo más didáctico posible. Cualquier crítica, duda, sugerencia o &#8230; <a
href="http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
rel="attachment wp-att-4349" href="http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/curso-java/"><img
class="aligncenter size-full wp-image-4349" title="Curso Java" src="http://www.linuxhispano.net/wp-content/uploads/2010/11/curso-java.png" alt="Curso Java" width="500" height="253" /></a></p><p>A raíz del espléndido <a
href="http://www.linuxhispano.net/curso-c-con-mono/">curso de C# con Mono</a> iniciado por Carazo, un servidor se ha atrevido a realizar lo mismo pero con el lenguaje de programación Java. Se pretenderá que sea lo más didáctico posible. Cualquier crítica, duda, sugerencia o propuesta de mejora sobre este curso será bienvenida.</p><h2><strong>¿Qué es Java?</strong></h2><p>Java es una tecnología que engloba principalmente las siguientes subtecnologías:</p><ul><li><strong>El lenguaje de programación Java: </strong>es un lenguaje orientado a objetos, con tipos de datos estáticos y cuyos programas se compilan produciendo una aplicación con código <em>bytecode</em>.</li></ul><ul><li><strong>Java Runtime Environment (JRE): </strong>está compuesto por la <em>Java Virtual Machine </em>(JVM) más otros componentes necesarios y su finalidad consiste en ejecutar los programas codificados en <em>bytecode.</em></li></ul><ul><li><strong>Java API: </strong>es el conjunto de todas las <em>Application Programming Interface </em>(API), o interfaces, que permiten al programador crear aplicaciones Java. Para programas más generales se utiliza la Java SE y para programas más complejos o con finalidad empresarial se usa la Java EE.</li></ul><p>La expresión Java es un término muy ambiguo. Generalmente cuando se habla de Java se está refiriendo al lenguaje de programación, y así lo haremos durante el resto del curso.</p><p>Debido a que instalar y configurar cada una de las partes es un proceso bastante lento, existe un kit llamado <em>Java Development Kit</em> (JDK) donde se encuentra todo lo necesario para empezar a programar.</p><p>Aquí os dejo una imagen donde se abarcan casi todas las subtecnologías de Java:</p><p><a
rel="attachment wp-att-4392" href="http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/java-2/"><img
class="aligncenter size-full wp-image-4392" title="java" src="http://www.linuxhispano.net/wp-content/uploads/2010/11/java.png" alt="java" width="680" height="255" /></a></p><p>Si queréis ver la imagen un poco más grande pulsa <a
target="_blank" href="http://download.oracle.com/javase/7/docs/">aquí (página oficial de Java)</a>.</p><h2><strong>¿Cuándo programar en Java?</strong></h2><p>Es cierto el axioma que dice que para cada tipo de programa le corresponde un lenguaje de programación. Y Java no es una excepción. Es conveniente decir de antemano que Java se ha convertido en un lenguaje de propósito general, por tanto su uso se puede extender a todo tipo de programas. Sin embargo hay puntos donde Java es más fuerte y donde menos.</p><p>Cuando es muy recomendado programar en Java:</p><ul><li><strong>Aplicaciones portables: </strong>aunque haya lenguajes que permitan ejecutar, mediante compilación o interpretación, programas en cualquier sistema, nunca van a ser tan portables como un programa hecho en Java. Su grandeza radica en que un mismo código puede ser ejecutado en cualquier parte gracias, y esto es lo más importante, al alto nivel de penetración en todos los sistemas. Y es cierto, un algoritmo puedes reutilizarlo para aplicaciones de escritorio, web, móvil y en cualquier máquina que tenga instalado el JRE.</li></ul><ul><li><strong>Servicios web empresariales:</strong> si tienes pensado crear una página web dinámica sin muchas pretensiones en cuanto a funcionalidades lo mejor es usar PHP. Es sencillo de aprender, práctico y muy escalable, un ejemplo claro es Facebook. Sin embargo, si estás en un entorno empresarial los servicios web corporativos hacen uso de transacciones, comunicaciones remotas, seguridad estricta, controles de la concurrencia, etc. que sólo Java puede proporcionar.</li></ul><p>Cuando no es recomendado programar en Java:</p><ul><li><strong>Aplicaciones multimedia</strong>: si necesitas hacer un juego de altas prestaciones, donde es imprescindible un grupo de trabajo, utiliza C++ con OpenGL. En cambio si sólo quieres hacer un juego tú sólo o con dos o tres personas más y que sea portable utiliza el lenguaje ActionScript 3. Por último, si te gusta crear juegos sencillos usa directamente el lenguaje Javascript.</li></ul><ul><li><strong>Aplicaciones con alta carga computacional: </strong>los programas en Java consiguen altos rendimientos de procesado. Sin embargo nunca serán tan eficaces como un programa compilado. Para este tipo de programas utiliza los lenguajes C y C++, en mayor medida, y, para casos muy específicos, el lenguaje ensamblador.</li></ul><h2><strong>Resumen</strong></h2><p>Java es una tecnología que a su vez lo componen varias subtecnologías. La principal de ellas es el lenguaje de programación Java junto con todas sus API. Conocerlas en profundidad es la clave para ser un experto en Java.</p><p>En el siguiente capítulo aprenderás a cómo instalar y configurar todo el entorno de Java y crear tu primera programa.</p><p><strong>Curso:</strong> <a
target="_blank" href="http://linuxhispano.net/curso-java/">Curso Java</a>.<br
/> <strong>Siguiente capítulo:</strong> <a
target="_blank" href="http://linuxhispano.net/2010/12/01/curso-java-2-material-trabajo/">2. Material de trabajo</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2010/11/28/curso-java-1-introduccion/feed/</wfw:commentRss> <slash:comments>17</slash:comments> </item> <item><title>gvSIG Mini 1.0. La versión de gvSIG para móviles</title><link>http://www.linuxhispano.net/2010/09/13/gvsig-mini-1-0-la-version-de-gvsig-para-moviles/</link> <comments>http://www.linuxhispano.net/2010/09/13/gvsig-mini-1-0-la-version-de-gvsig-para-moviles/#comments</comments> <pubDate>Mon, 13 Sep 2010 08:39:06 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[android]]></category> <category><![CDATA[google]]></category> <category><![CDATA[gvsig]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mapas]]></category> <category><![CDATA[móvil]]></category> <category><![CDATA[SIG]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=3518</guid> <description><![CDATA[Es posible que muchos de vosotros no conozca gvSIG Mini ni su versión de escritorio gvSIG Desktop. gvSIG es un proyecto libre de SIG (Sistemas de Información Geográfica) que nos permite el manejo de información geográfica con precisión cartográfica y &#8230; <a
href="http://www.linuxhispano.net/2010/09/13/gvsig-mini-1-0-la-version-de-gvsig-para-moviles/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-3519" title="gvSIGmini_linux_hispano" src="http://www.linuxhispano.net/wp-content/uploads/2010/09/gvSIGmini_linux_hispano.jpg" alt="" width="612" height="290" /></p><p>Es posible que muchos de vosotros no conozca <a
target="_blank" href="https://confluence.prodevelop.es/display/GVMN/Home" target="_blank">gvSIG Mini</a> ni su versión de escritorio <a
target="_blank" href="http://www.gvsig.org/web/projects/gvsig-desktop" target="_blank">gvSIG Desktop</a>. <strong>gvSIG</strong> es un proyecto libre de SIG (<em>Sistemas de Información Geográfica</em>) que nos permite el manejo de información geográfica con precisión cartográfica y que se distribuye bajo licencia GNU GPL v2. Permite acceder a información vectorial y rasterizada así como a servidores de mapas que cumplan la especificaciones del OGC.</p><p>Hasta ahora eso es lo que teníamos, pero esta mañana a través de la<strong> lista de correo</strong> de desarrolladores de gvSIG me entero de que acaba de ser liberada la <strong>versión 1.0</strong> de la más liviana de las versiones, la Mini, principalmente dirigida al sistema operativo móvil: <strong>Android</strong>.</p><p>Podeis seguir el hilo de la conversación directamente a través de la lista: <em>gvsig_desarrolladores@listserv.gva.es</em> o en este enlace a través de <a
target="_blank" href="http://osgeo-org.1803224.n2.nabble.com/Lanzamiento-de-gvSIG-Mini-for-Android-1-0-0-td5525312.html#a5525312" target="_blank">Nabble</a>. Para más información y descarga de la aplicación aquó os enlazo la web oficial: <a
target="_blank" href="https://confluence.prodevelop.es/display/GVMN/Home" target="_blank">gvSIG Mini</a>.</p><p>Os detallo las características de esta versión, que incluye, entre otras, la posibilidad de descarga directa de mapas para una posterior visualización en modo desconectado, sin conexión de datos.</p><p><strong>gvSIG Mini</strong> es un visor libre de mapas de libre acceso basados en tiles (OpenStreetMap, YahooMaps, Microsoft Bing&#8230;), con modo desconectado, cliente WMS, WMS-C, búsqueda de direcciones, POIs, rutas, entre otras funcionalidades. Como os comentaba antes, gvSIG Mini es un proyecto open source (GNU/GPL) dirigido a teléfonos móviles Java y Android, y en esta entrada la versión que os anuncio es la 1.0.0 para terminales Android.</p><p>Las principales novedades que presenta la versión 1.0.0 son las siguientes:</p><ol><li>Descarga de mapas directamente desde el teléfono para uso en <strong>modo off-line</strong>.</li><li>Soporte de <strong>multitouch</strong>.</li><li>Nuevo sistema de pintado de mapas más ágil y liviano.</li><li>Soporte de botón de <strong>búsqueda estándar de Android</strong>.</li><li>Mapas oficiales de <strong>Ordnance Survey</strong> de Reino Unido y nuevas capas disponibles por defecto.</li><li>Menú de configuración con múltiples opciones con soporte para diversos modos de <strong>caché</strong>.</li><li>Soporte de <strong>Android 2.2</strong> (sólo estaba disponible para la versión 1.5 y 1.6+ &#8211; 2.2)</li><li>Corrección de más de 20 errores (<em>bugs)</em>.</li></ol><p>Eso es todo, que no es poco. Mi recomendación, <strong>probarlo</strong>. Ya nos comentaréis que os parece.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2010/09/13/gvsig-mini-1-0-la-version-de-gvsig-para-moviles/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>TimeShot, pintando con fotografías, la evolución del HDR</title><link>http://www.linuxhispano.net/2010/05/09/timeshot-pintando-con-fotografias-la-evolucion-del-hdr/</link> <comments>http://www.linuxhispano.net/2010/05/09/timeshot-pintando-con-fotografias-la-evolucion-del-hdr/#comments</comments> <pubDate>Sun, 09 May 2010 11:27:39 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[composición]]></category> <category><![CDATA[fotografía]]></category> <category><![CDATA[hdr]]></category> <category><![CDATA[java]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[mac]]></category> <category><![CDATA[multiplataforma]]></category> <category><![CDATA[open source]]></category> <category><![CDATA[windows]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=2342</guid> <description><![CDATA[Si pensabas que dentro del mundo de la composición de imágenes con HDR estaba todo inventado, te equivocas. La aplicación que os presento nos permite pintar fotos con fotos. TimeShot, se trata de una aplicación multiplataforma, hecha en Java. Podemos &#8230; <a
href="http://www.linuxhispano.net/2010/05/09/timeshot-pintando-con-fotografias-la-evolucion-del-hdr/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-2343" title="timeshot_linux_hispano" src="http://www.linuxhispano.net/wp-content/uploads/2010/05/timeshot_linux_hispano.jpg" alt="" width="324" height="142" /></p><p>Si pensabas que dentro del mundo de la composición de imágenes con HDR estaba todo inventado, te equivocas. La aplicación que os presento nos permite pintar fotos con fotos.</p><p><strong><a
target="_blank" href="http://timeshot.inevo.pt/" target="_blank">TimeShot</a></strong>, se trata de una aplicación multiplataforma, hecha en Java. Podemos hacer uso de esta directamente desde la red a través de un <em>applet</em> (personalmente no lo recomiendo) o bajándonos la aplicación y ejecutándola en local. Una vez tengamos abiertas las imágenes con las que queramos componer podemos usar unas para pintar otras, obteniendo efectos bastante completos y sorprendentes como los que podemos ver a través del siguiente video.</p><p><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowScriptAccess" value="always" /><param
name="src" value="http://www.youtube.com/v/9VCmt1x9VRo&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;hl=pt_PT&amp;feature=player_embedded&amp;fs=1" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/9VCmt1x9VRo&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;hl=pt_PT&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Si bien, es recomendable que las fotografías que usemos sea del mismo lugar con diferentes características de luz, contraste o exposición, consiguiendo unos efectos más realistas y al mismo tiempo sorprendentes. Como hemos podido observar, se colocan en capas, afectando a las zonas que queramos y creando un efecto bastante natural y original.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2010/05/09/timeshot-pintando-con-fotografias-la-evolucion-del-hdr/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Diferenciar i++ y ++i</title><link>http://www.linuxhispano.net/2009/12/07/%c2%bfcual-es-la-diferencia-entre-i-y-i/</link> <comments>http://www.linuxhispano.net/2009/12/07/%c2%bfcual-es-la-diferencia-entre-i-y-i/#comments</comments> <pubDate>Mon, 07 Dec 2009 10:54:04 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[c]]></category> <category><![CDATA[java]]></category> <category><![CDATA[programación]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=793</guid> <description><![CDATA[Si alguna vez habéis programado en un lenguaje de programación con sintaxis heredada de C: el mismo C, C++, Java, C#&#8230; seguro que habéis utilizado el operador postincremento, sobre todo en iteraciones for, el famoso: i++ (o equivalente). Lo que &#8230; <a
href="http://www.linuxhispano.net/2009/12/07/%c2%bfcual-es-la-diferencia-entre-i-y-i/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
class="aligncenter size-full wp-image-968" title="operador" src="http://www.linuxhispano.net/wp-content/uploads/2009/12/operador.png" alt="operador" width="280" height="280" /></p><p>Si alguna vez habéis programado en un lenguaje de programación con sintaxis heredada de C: el mismo C, C++, Java, C#&#8230; seguro que habéis utilizado el operador postincremento, sobre todo en iteraciones <em>for</em>, el famoso: <strong>i++ </strong>(o equivalente). Lo que es menos frecuente es haber utilizado el operador <strong>++i</strong>, pero si lo habéis utilizado seguro que lo habéis hecho para algo similar al anterior. La diferencia entre ambos es algo que un día me inquietó y que hoy os voy a comentar.</p><p><strong>La diferencia es la precedencia del operador</strong>, es decir, qué operador realiza su acción antes. Esta diferencia no importa cuando la única operación de una sentencia es<em> i++ </em>o <em>++i</em>, es decir:</p><pre name="code" class="java">i++;
++i;</pre><p>Típica situación del caso de las iteraciones <em>for</em>, es lo mismo. Sin embargo, cuando hay otra operación de por medio, las cosas cambian. Veamos:</p><pre name="code"  class="java">i = 0;
v = i++;</pre><p>La variable v contendrá 0 e i contendrá 1. Primero se ha asignado el valor de i a v y posteriormente se ha incrementado i. Si utilizamos el otro operador, que tiene más precedencia, se ejecutará antes el incremento de i y posteriormente se asignará su nuevo valor, 1, a la variable v.</p><pre name="code"  class="java">i = 0;
v = ++i;</pre><p>En este caso ambas variables, v e i, contienen 1.</p><p>La diferencia funcional, como podéis ver, existe y es conveniente conocerla, para poder utilizarla, explotarla y de paso, conocer algo más sobre los lenguajes de este tipo.</p><p>Aparte existe otra diferencia, ésta de carácter computacional y que es conveniente conocerla de cara a hacer más eficiente nuestro código. <em>++i</em> realiza dos instrucciones, incrementar y retornar; mientras que <em>i++</em>, por lo que acabamos de comentar lleva a cabo tres: guardar el estado actual, incrementar, retornar el estado anterior.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2009/12/07/%c2%bfcual-es-la-diferencia-entre-i-y-i/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Novedades en Java 7</title><link>http://www.linuxhispano.net/2009/11/26/novedades-en-java-7/</link> <comments>http://www.linuxhispano.net/2009/11/26/novedades-en-java-7/#comments</comments> <pubDate>Thu, 26 Nov 2009 11:15:54 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[java]]></category> <category><![CDATA[novedades]]></category> <category><![CDATA[programación]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=791</guid> <description><![CDATA[Aunque todavía queda un poco para el lanzamiento de la versión estable de Java 7 (ahora mismo si no me equivoco están en la actualización 17 de Java 6), aquí os traigo una serie de mejoras que va a incorporar &#8230; <a
href="http://www.linuxhispano.net/2009/11/26/novedades-en-java-7/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
class="alignright size-full wp-image-807" title="java_logo" src="http://www.linuxhispano.net/wp-content/uploads/2009/11/java_logo.png" alt="java_logo" width="93" height="122" /></p><p>Aunque todavía queda un poco para el lanzamiento de la versión estable de <strong>Java 7</strong> (ahora mismo si no me equivoco están en la actualización 17 de Java 6), aquí os traigo <strong>una serie de mejoras</strong> que va a incorporar y que podéis ya probar a través del <em>JDK 7 </em><em>Early Access</em>.</p><p>La recopilación de las mejoras ha salido publicada en <a
target="_blank" href="http://code.joejag.com/2009/new-language-features-in-java-7/" target="_blank">el blog tecnológico de JoeJag</a> (en inglés) y aquí os la dejo traducida:</p><p><strong>Soporte mejorado para colecciones</strong></p><p>A partir de ahora las colecciones podrán declararse al estilo de Ruby o Perl. En lugar de tener que hacer:<br
/> <code>List list = new ArrayList();<br
/> list.add("item");<br
/> String item = list.get(0);</code></p><p><code>Set set = new HashSet();<br
/> set.add("item");<br
/> </code></p><p><code>Map map = new HashMap();<br
/> map.put("key", 1);<br
/> int value = map.get("key");</code></p><p>Se podrá hacer directamente:<br
/> <code>List list = ["item"];<br
/> String item = list[0];</code></p><p><code> </code></p><p><code>Set set = {"item"};</code></p><p><code> </code></p><p><code>Map map = {"key" : 1};<br
/> int value = map["key"];</code></p><p><strong>Manejo automático de recursos</strong></p><p>Algunos recursos como InputStream, Writers, Sockets o clases relacionadas con Sql, tienen que ser ser cerrados manualmente en cada utilización, por ejemplo:<br
/> <code>BufferedReader br = new BufferedReader(new FileReader(path));<br
/> try {<br
/> return br.readLine();<br
/> } finally {<br
/> br.close();<br
/> }</code></p><p>Sin embargo, a partir de ahora, automáticamente podremos hacer:<br
/> <code>try (BufferedReader br = new BufferedReader(new FileReader(path)) {<br
/> return br.readLine();<br
/> }</code></p><p>O si tenemos más de un recurso:<br
/> <code>try (<br
/> InputStream in = new FileInputStream(src);<br
/> OutputStream out = new FileOutputStream(dest))<br
/> {<br
/> // código<br
/> }</code></p><p><strong>Inferencia de tipos mejorada para creación genérica de instancias (operador diamante &lt; &gt;)</strong></p><p>Si antes estábamos obligados a hacer:<br
/> <code>Map&gt; anagrams = new HashMap&gt;();</code></p><p>Ahora simplemente:<br
/> <code>Map&gt; anagrams = new HashMap&lt;&gt;();</code></p><p><strong>Barras bajas en literales numéricos</strong></p><p>Porque los números grandes son complejos de leer sin problemas:<br
/> <code>int un_millon= 1_000_000;</code></p><p><strong>Cadenas para la clausula switch</strong></p><p>Posiblemente el más esperado de todos (hasta ahora sólo los tipos enum y números podían ser utilizados en los <em>switch</em>). Ya podremos hacer directamente:<br
/> <code>String s = ...<br
/> switch(s) {<br
/> case "linuxhispano":<br
/> llamar(w);</code></p><p><code>case "web":<br
/> case "internet":<br
/> procesar(w);<br
/> break;</code></p><p><code>case "foo":<br
/> procesarfoo(s);<br
/> // fall-through</code></p><p><code> </code></p><p><code> default:<br
/> demas(s);<br
/> break;<br
/> }</code></p><p><strong>Binarios literales</strong></p><p>Utilizando el prefijo <em>0b (es un cero &#8217;0&#8242; no una o)</em>, podremos representar directamente enteros en formato binario:<br
/> <code>int binary = 0b1001_1001;</code></p><p><strong>Simplificación de la invocación de métodos con argumentos variables</strong></p><p>Si hasta ahora el compilador emitía <em>warning </em>en el lugar de la llamada al método, ahora lo hará en el de la declaración del mismo para facilitar la labor a los desarrolladores.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2009/11/26/novedades-en-java-7/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> </channel> </rss>
