<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8166774</id><updated>2011-04-22T00:01:53.311-03:00</updated><title type='text'>javaslack</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8166774.post-109746687201359260</id><published>2004-10-11T00:35:00.000-03:00</published><updated>2004-10-13T01:12:40.540-03:00</updated><title type='text'>Rapidinha de java #3</title><content type='html'>Percebendo a demanda de perguntas sobre o assunto em fórums de java e uma dúvida que já tive sanada, venho a publicar como centralizar "telas" em java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jeito trabalhoso:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Classes utilizadas nessa demonstração: Container, Dimension, JFrame, Toolkit.&lt;br /&gt;&lt;br /&gt;Container: é uma classe container responsável pela adição de componentes do pacote AWT.&lt;br /&gt;&lt;br /&gt;Dimension: é uma classe responsável por encapsular largura e altura de um componente, recebendo as dimensões retornadas pelos métodos dos respectivos objetos.&lt;br /&gt;&lt;br /&gt;JFrame: esta é uma extensão da classe Frame do pacote awt, mas que possui suporte aos componentes do pacote swing, sendo que o JFrame é totalmente incompatível com a classe Frame, esta classe provê tarefas básicas de uma janela.&lt;br /&gt;&lt;br /&gt;Toolkit: esta classe é uma superclasse abstratas de todas as implementações do pacote AWT, ela contém um "pacote" de tarefas básicas, como a que vamos utilizar aqui que é retornar a resolução da tela do usuário.&lt;br /&gt;&lt;br /&gt;Então vamos colocar a mão na massa e comentar alguns pontos que considero relevantes:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="0" cellpadding="3" cellspacing="1" width="90%"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="genmed"&gt;&lt;b&gt;Código:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;  &lt;table align="center" bgcolor="#000000" border="0" cellpadding="3" cellspacing="1" width="90%"&gt;  	&lt;tbody&gt;&lt;tr&gt; 	  &lt;td class="code" bgcolor="#e6e6e6"&gt;import java.awt.Container;&lt;br /&gt;import java.awt.Toolkit;&lt;br /&gt;import java.awt.Dimension&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt; &lt;br /&gt;/* Estamos herdando métodos e atributos da classe JFrame */&lt;br /&gt;public class Demonstracao extends JFrame {&lt;br /&gt; &lt;br /&gt;       /* Declaração das ações a serem executadas pelo contrutor default */&lt;br /&gt;public Demonstracao() {&lt;br /&gt; &lt;br /&gt;   /* Passa o argumento que irá definir o título da janela ao construtor da superclasse JFrame*/&lt;br /&gt;   super("Classe de demonstracao");&lt;br /&gt;&lt;br /&gt;/* Aqui atribuimos a referência container o método que retorna o painel de conteúdo de JFrame */&lt;br /&gt;   Container container = getContentPane();&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;/* Aqui iniciamos o corpo do método main */&lt;br /&gt;public static void main (String args[]) {&lt;br /&gt;&lt;br /&gt;   /* Instanciamos a classe Demonstracao, que possui todos os métodos e atribuitos de JFrame */&lt;br /&gt;   Demonstracao janela = new Demonstracao();&lt;br /&gt;&lt;br /&gt;    /* Invocamos o método que irá definir o tamanho da janela da classe Demonstracao */&lt;br /&gt;   janela.setSize(250,250);&lt;br /&gt;&lt;br /&gt;/* Aqui atribuimos uma refência para a classe Dimension que irá receber e encapsular os valores retornados pelo método getScreenSize, primeiro invocamos o método que getDefaultToolkit que irá nos retornar um objeto default toolkit e nos possibilitar utilização do método getScreenSize() para retornar o valor da resolução de tela em pixels;&lt;br /&gt;   Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;&lt;br /&gt;/* Aqui estamos utilizando a referência com os métodos de largura(Width) e altura(Height), diminuimos pelo tamanho do JFrame e dividimos por 2, fazendo o casting para inteiro, para que possamos ter a posição exata e central da tela.&lt;br /&gt;   int largura = (int) (tela.getWidth() - 250) / 2;&lt;br /&gt;   int altura = (int) (tela.getHeight() - 250) / 2;&lt;br /&gt;&lt;br /&gt;/* Por fim utilizamos o método herdado do JFrame para definir a posição do objeto na tela, à partir dos valores obtidos acima */&lt;br /&gt;   janela.setLocation(largura,altura);&lt;br /&gt; &lt;br /&gt;   /* Método responsável por definir a "visibilidade" da janela na tela */&lt;br /&gt;   janela.setVisible(true);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;  &lt;span class="postbody"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Jeito simples:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Retirado do &lt;a href="http://www.guj.com.br/forum/viewtopic.php?p=86664#86664"&gt;fórum do GUJ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="postbody"&gt;Pessoal,não precisa nada disso...eh soh(do JDK1.4 em diante):&lt;br /&gt;&lt;/span&gt; &lt;table align="center" border="0" cellpadding="3" cellspacing="1" width="90%"&gt;  &lt;tbody&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class="genmed"&gt;&lt;b&gt;Código:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;  &lt;table align="center" bgcolor="#000000" border="0" cellpadding="3" cellspacing="1" width="90%"&gt;  	&lt;tbody&gt;&lt;tr&gt; 	  &lt;td class="code" bgcolor="#e6e6e6"&gt;//centraliza o frame na tela&lt;br /&gt;     frame.setLocationRelativeTo(null);&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;  &lt;span class="postbody"&gt;&lt;br /&gt;&lt;/span&gt;Mais uma vez sairá sem a identação do código porque não tenho paciência para tags html, grato por sua compreensão e no intuito de ter ajudado da melhor forma.&lt;br /&gt;&lt;br /&gt;[   ]'s Bruno&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109746687201359260?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109746687201359260/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109746687201359260' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109746687201359260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109746687201359260'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/10/rapidinha-de-java-3.html' title='Rapidinha de java #3'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109663973852551360</id><published>2004-10-01T10:44:00.000-03:00</published><updated>2004-10-13T01:09:45.350-03:00</updated><title type='text'>Rapidinha de java #2</title><content type='html'>Como pegar a data e hora do sistema no Java, foi essa a pergunta de um colega na lista de discussão do deitel e para todos segue a resposta.&lt;br /&gt;&lt;br /&gt;Para tal tarefa vamos utilizar duas classes, uma do pacote util chamada &lt;span style="font-style: italic;"&gt;GregorianCalendar&lt;/span&gt; e a outra do pacote text chamada &lt;span style="font-style: italic;"&gt;SimpleDateFormat&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GregorianCalendar&lt;/span&gt; é uma subclasse de &lt;span style="font-style: italic;"&gt;Calendar&lt;/span&gt; que nos fornecerá datas completas,horários, dia do mês e etc&lt;span style="font-style: italic;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;SimpleDateFormat&lt;/span&gt; é a classe que permite com que você utilize o formato desejado de data ou hora.&lt;br /&gt;&lt;br /&gt;Então vamos parar de falar e agir:&lt;span class="genmed"&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Código:&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt; &lt;table align="center" bgcolor="#000000" border="0" cellpadding="3" cellspacing="1" width="90%"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td class="code" bgcolor="#e6e6e6"&gt;/* Classe que demonstra as funcionalidades de GregorianCalendar e SimpleDateFormat */&lt;br /&gt;     &lt;br /&gt;public class Demonstra {&lt;br /&gt;     &lt;br /&gt;           public static void main (String args[]) {&lt;br /&gt;     &lt;br /&gt;           /* Aqui instanciamos a classe GregorianCalendar de forma que ela           chame o construtor padrão dela */&lt;br /&gt;     &lt;br /&gt;           GregorianCalendar calendario = new GregorianCalendar();&lt;br /&gt;     &lt;br /&gt;/* Aqui instanciamos a classe SimpleDateFormat passando argumentos para o construtor de forma que ele inicialize os valores através dos argumentos passados */&lt;br /&gt;     &lt;br /&gt;           SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");&lt;br /&gt;           SimpleDateFormat hora = new SimpleDateFormat("HH:mm");&lt;br /&gt;     &lt;br /&gt;/* Aqui chamamos o conhecido método println para exibir nossos dados, na primeira linha fazemos com que o método getTime nos retorne todos os dados, através da referência "calendario" para a classe GregorianCalendar */&lt;br /&gt;     &lt;br /&gt;           System.out.println("Informação completa " + calendario.getTime());&lt;br /&gt;     &lt;br /&gt;/* Aqui fazemos com que o valor retornado pelo método getTime seja formatado pelo método format que passará uma mensagem ao objeto "data" */&lt;br /&gt;     &lt;br /&gt;           System.out.println("Data " + data.format(calendario.getTime());&lt;br /&gt;     &lt;br /&gt;/* Aqui fazemos com que o valor retornado pelo método getTime seja formatado pelo método format que passará uma mensagem ao objeto "hora" */&lt;br /&gt;     &lt;br /&gt;           System.out.println("Hora " + hora.format(calendario.getTime());&lt;br /&gt;     &lt;br /&gt;           }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;  &lt;/table&gt;   &lt;span class="postbody"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Espero ter ajudado da melhor forma, e peço desculpas pela ausência de identação, mas é que não tive tempo nem paciência com as tags html.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109663973852551360?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109663973852551360/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109663973852551360' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109663973852551360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109663973852551360'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/10/rapidinha-de-java-2.html' title='Rapidinha de java #2'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109654705007188782</id><published>2004-09-30T09:18:00.000-03:00</published><updated>2004-09-30T09:25:47.250-03:00</updated><title type='text'>Rapidinha de shell #4</title><content type='html'>Aproveitando a ajuda que dei a um camarada da lista de shell isso desencadeou mais uma rapidinha, ele está com o seguinte problema: queria checar o status de sua conexão e fazer se fosse derrubada a conexão o gateway dele automaticamente reconectasse, e buscando apoio no shell enviei a gasolina pra ele.&lt;br /&gt;&lt;br /&gt;&lt;span class="q"&gt;#!/bin/bash&lt;br /&gt;ping -c 2 &lt;a onclick="return top.js.OpenExtLink(window,this)" href="http://www.uol.com.br/" target="_blank"&gt;www.uol.com.br&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;while [ $? -ne 1 ];&lt;br /&gt;do&lt;br /&gt;&lt;span class="q"&gt;&lt;br /&gt;ping -c 2 &lt;a onclick="return top.js.OpenExtLink(window,this)" href="http://www.uol.com.br/" target="_blank"&gt;www.uol.com.br&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;echo "está conectado"&lt;br /&gt;&lt;br /&gt;       if [ $? -ne 0 ]; then&lt;br /&gt;&lt;br /&gt;       echo "está desconectado"&lt;br /&gt;&lt;br /&gt;       fi&lt;br /&gt;sleep 300&lt;br /&gt;&lt;br /&gt;done &amp;&lt;br /&gt;&lt;br /&gt;Obs: 1- A variável $? retorna se o comando foi bem sucedido ou não.&lt;br /&gt;        2- -ne significa not equal&lt;br /&gt;       3- &amp;amp; faz o script rodar como um daemon&lt;br /&gt;       4- Para mais informações man ping, man echo, man sleep.&lt;br /&gt;&lt;br /&gt;Crítica: Um dos pontos falhos desse script é que se o host www.uol.com.br cair ele irá interpretar como se sua conexão tivesse caído.&lt;br /&gt;&lt;br /&gt;Espero ter ajudado e paz a todos!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109654705007188782?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109654705007188782/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109654705007188782' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109654705007188782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109654705007188782'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/rapidinha-de-shell-4.html' title='Rapidinha de shell #4'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109539965786780408</id><published>2004-09-17T02:37:00.000-03:00</published><updated>2004-09-17T02:52:56.986-03:00</updated><title type='text'>Projeto Mini HelpDesk aprovado na sourceforge.net</title><content type='html'>&lt;pre style="font-family: times new roman;"&gt;&lt;span style="font-size:100%;"&gt;Subject: SourceForge.net Project Approved&lt;br /&gt;&lt;br /&gt;Your project registration for SourceForge.net has been approved.&lt;br /&gt;&lt;br /&gt;Project Information:&lt;br /&gt;&lt;br /&gt;Project Descriptive Name:  Mini HelpDesk&lt;br /&gt;Web Server: minihelpdesk.sourceforge.net&lt;br /&gt;&lt;br /&gt;Description: Mini HelpDesk is a software written in java language that&lt;br /&gt;enables professional to register computer problems in your clients,&lt;br /&gt;and generate report trough jasperreports library in pdf, xml, html.&lt;br /&gt;&lt;br /&gt;Uhu! Agora é muito trabalho pela frente e estudo, mais uma vez&lt;br /&gt;agradeço a todos pelo apoio!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109539965786780408?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109539965786780408/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109539965786780408' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109539965786780408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109539965786780408'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/projeto-mini-helpdesk-aprovado-na.html' title='Projeto Mini HelpDesk aprovado na sourceforge.net'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109510873416094763</id><published>2004-09-13T17:48:00.000-03:00</published><updated>2004-09-13T17:52:14.160-03:00</updated><title type='text'>Projeto Mini HelpDesk aprovado!</title><content type='html'>É como felicidade que anuncio a aprovação de meu projeto denominado Mini HelpDesk e disponibilizado sobre GLP, totalmente em Java, é um modesto software no qual estou aprendendo e muito no seu desenvolvimento!&lt;br /&gt;&lt;br /&gt;Assunto:   								  CodigoLivre: Projeto Aprovado 								 							 								&lt;br /&gt;Data:   								  13/09/04 11:07&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;O registro de seu projeto no CodigoLivre foi aprovado.&lt;br /&gt;&lt;br /&gt;Nome Completo:  Mini HelpDesk&lt;br /&gt;Home Page:   minihelpdesk.codigolivre.org.br&lt;br /&gt;&lt;br /&gt;Agradeço a todos os amigos que contribuíram com o meu aprendizado e continuam a contribuir, e a codigolivre por incentivar o desenvolvimento de softwares.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109510873416094763?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109510873416094763/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109510873416094763' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109510873416094763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109510873416094763'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/projeto-mini-helpdesk-aprovado.html' title='Projeto Mini HelpDesk aprovado!'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109494004254984257</id><published>2004-09-11T18:40:00.001-03:00</published><updated>2004-10-24T11:09:19.753-03:00</updated><title type='text'>Pegando o touro a unha - jasperreports e iReports</title><content type='html'>Bom primeiramente quero notificar aos leitores (se é que eles existem) que esse post será constantemente modificado, devido a falta de tempo para escrever tudo de uma vez só.&lt;br /&gt;&lt;br /&gt;Há exatos 3 semanas atrás em minha insolita caminhada no aprendizado dessa maravilhosa linguagem denominada Java, procurei uma forma de gerar relatórios para o meu pequeno software que desenvolvi de helpdesk eis que então encontrei o pacote &lt;a href="http://jasperreports.sourceforge.net/"&gt;JasperReports&lt;/a&gt; e a interface gráfica para este pacote denominada &lt;a href="http://ireport.sourceforge.net/"&gt;iReport&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bom a primeira coisa a ser feita foi pesquisar muito, quando as pessoas falam que o google é sua mãe, acredite é o melhor lugar para se pesquisar, só que eu já tinha conhecimento de onde ir, nos ótimos sites de java: &lt;a href="http://www.guj.com.br/"&gt;GUJ&lt;/a&gt;, &lt;a href="http://www.javafree.com.br/"&gt;Javafree.org&lt;/a&gt;, &lt;a href="http://www.soujava.com.br/"&gt;SouJava&lt;/a&gt;, &lt;a href="http://www.portaljava.com.br/"&gt;PortalJava&lt;/a&gt;, então finalmente depois de horas pesquisando encontrei 2 ótimos artigos um no &lt;a href="http://www.guj.com.br/"&gt;GUJ&lt;/a&gt; e outro no &lt;a href="http://www.javafree.com.br/"&gt;Javafree.org&lt;/a&gt;. Infelizmente todas as informações que eu queria não encontrei, sendo assim tive de correr atrás de informação seja buzinando a paciência dos meus amigos seja lendo os docs, faqs, fóruns tudo a respeito do assunto, então no intuito de oferecer a minha pequena contribuição, eu lhes apresento:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JasperReports e iReports&lt;br /&gt;&lt;/span&gt;   &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;font&gt;1.&lt;span style="font-weight: bold;"&gt; Introdução&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ol&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; JasperReports é uma biblioteca voltada para geração de relatórios de forma dinâmica, estando no mesmo nível ou acima de algumas ferramentas comerciais, sendo capaz de gerar relatórios nos mais diversos formatos: xml, pdf, html..., esta biblioteca é puramente escrita em Java e pode ser usada em diversas aplicações, sejam elas J2SE ou J2EE.&lt;br /&gt;&lt;br /&gt;Toda a informação de design e dados do relatório é armazenada em um XML, essa informação pode vir de várias fontes de dados, sejam elas base de dados relacionais, collections, arrays de objetos.&lt;br /&gt;&lt;br /&gt;Para utilizarmos um relatório definido no XML, este precisa ser compilado primeiro, esta compilação implica na compilação de todas as expressões em Java definidas no XML, sendo que são feitas inúmeras verificações durante este processo, gerando assim um arquivo compilado com a extensão jasper.&lt;br /&gt;&lt;br /&gt;A definição de todo o relatório precisa receber dados para que o relatório seja "montado", sendo que alguns desses dados são passados via parâmetros para o relatório, a maioria dessas informações estão contidas em alguma origem de dados, normalmente sendo obtidos através de dados extraídos de objetos e colocados no relatório ou estão são recuperados de alguma base de dados relacional através de uma conexão JDBC.&lt;br /&gt;&lt;br /&gt;O resultado dessa operação é um novo objeto capaz de ser exibido através da interface gráfica de impressão do jasper, ou podendo ser exportado em algum dos formatos citados: pdf, xml, html...&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Uma descrição das API's necessárias&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Uma simples visualização da API do pacote jasperreports, retirada do livro "The JaperReports Ultimate Guide" (por favor prepare sua lente de aumento):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;      &lt;code&gt;&lt;img src="http://www.j2b.com.br/images/artigos/diagrama.jpg" /&gt;&lt;/code&gt;&lt;br /&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;font&gt;&lt;br /&gt;Descrição básica das classes mais importantes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;net.sf.jasperreports.engine.JasperManager&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;Esta classe será nosso canivete suíço, uma vez que ela será responsável por compilar o xml que nós vamos definir, preencher todo o conteúdo do relatório e gerar os pdfs, como a tradução do próprio nome diz ela é gerenciadora do Jasper.&lt;br /&gt;&lt;br /&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;span style="font-style: italic;"&gt;net.sf.jasperreports.engine.design.JasperDesign&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cada instância é obtida através do relatório que você definiu no arquivo xml que é então passado a biblioteca interna para análise de sua sintaxe, existem muitos exemplos de como definir seu xml no pacote do jasper, todas as instâncias dessa classe serão submetidas a compilação para preenchimento do relatório. É esta classe que irá receber o xml lido pela classe JasperManager.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; &lt;span style="font-style: italic;"&gt;net.sf.jasperreports.engine.JasperReport&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Essa classe irá armazenar o JasperDesign compilado gerando um novo objeto JasperReport.&lt;br /&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;/span&gt;&lt;font&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;net.sf.jasperreports.engine.JasperPrint&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;É a classe que irá conter todo o relatório preenchido com os dados resgatados da base de dados.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; net.sf.jasperreports.view.JasperViewer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;font&gt;É a classe responsável pela exibição do relatório preenchido e o estágio final caso você queira apenas o modo básico para se gerar relatórios.&lt;br /&gt;&lt;br /&gt;(documento em fase de edição)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109494004254984257?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109494004254984257/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109494004254984257' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109494004254984257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109494004254984257'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/pegando-o-touro-unha-jasperreports-e_11.html' title='Pegando o touro a unha - jasperreports e iReports'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109493656066184163</id><published>2004-09-11T17:44:00.000-03:00</published><updated>2004-09-11T18:06:31.926-03:00</updated><title type='text'>Rapidinha de java #1</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Classpath no netbeans&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Bom como intuito de complementar o &lt;a href="http://www.guj.com.br/java.article.get.print.chain?article.id=108"&gt;artigo publicado na GUJ&lt;/a&gt; vamos explicar como setar o classpath no netbeans, pois pelo pouco que conheço você o netbeans nem te dá bola quando você seta seu classpath por variáveis de ambiente, pois acredite, ele tem as dele :)&lt;br /&gt;Vamos supor que você baixou um jar por exemplo do jasperreports e deseja utilizá-lo lógico para gerar seus relatórios, você terá duas opções, uma será copiar para o diretório:&lt;br /&gt;&lt;br /&gt;/usr/lib/java/jre/lib/ext/&lt;br /&gt;&lt;br /&gt;Que é o único diretório onde o netbeans busca por pacotes adicionais, ou de outra forma você pode adicionar da seguinte forma:&lt;br /&gt;&lt;br /&gt;1- Abra o netbeans&lt;br /&gt;2 - Clique na aba Filesystems, depois nesta mesma aba logo abaixo irá exibir o nome Filesystems, clique com o direito do mouse nele.&lt;br /&gt;3 - Vá em mount -----&gt; Archive Files&lt;br /&gt;4 - Procure o seu .jar, o selecione e dê ok&lt;br /&gt;&lt;br /&gt;Pronto você já tem o seu jar listado no classpath no netbeans, caso seja um diretório que tu deseja adicionar basta ao invés de ir em Archive Files ir em Local Directory. Espero ter ajudado aqueles que tem essa dúvida básica como eu já tive e paz a todos.&lt;br /&gt;&lt;br /&gt;Artigos consultados: &lt;a href="http://www.netbeans.org/kb/using-netbeans/36/project_setup.html#mount_resources"&gt;Netbeans.org&lt;/a&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109493656066184163?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109493656066184163/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109493656066184163' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109493656066184163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109493656066184163'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/rapidinha-de-java-1.html' title='Rapidinha de java #1'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109449543356007253</id><published>2004-09-06T15:04:00.000-03:00</published><updated>2004-09-06T15:39:22.036-03:00</updated><title type='text'> Rapidinha de shell #3</title><content type='html'>Fala hermano, você deve estar se perguntando: Pra que eu quero a porcaria de um loop pra adicionar uma renca de usuários, se eu vou ter que adicionar a senha de cada um na unha, seu maldito? Então vamos lá, usufluindo da boa lista de &lt;a href="http://br.groups.yahoo.com/group/shell-script"&gt;shell&lt;/a&gt;, temos o seguinte script perl:&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;$pass = crypt ($ARGV[0],"60");&lt;br /&gt;print "$pass";&lt;br /&gt;&lt;br /&gt;Maiores informações temos (&lt;a href="http://http//www.dicas-l.unicamp.br/dicas-l/20010118.shtml"&gt;Dicas-L&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Agora vamos abusar sexualmente das rapidinhas anteriores, onde foi explicado como gerar senhas aleatórias e como adicionar os usuários, teríamos então:&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;#Relação de usuários e senhas, que PROVAVELMENTE você criou(vide rapidinhas anteriores).&lt;br /&gt;ARQUIVO="/home/p0lux/usuarios"&lt;br /&gt;&lt;br /&gt;#Shell do usuário e seu respectivo home, no meu caso eu não necessito que meus usuários tenham shell, nem home(porque quem tem home é boiola).&lt;br /&gt;SHELLUSER="/bin/false"&lt;br /&gt;HOMEUSER="/bin/false"&lt;br /&gt;&lt;br /&gt;cat $ARQUIVO | while read USUARIO SENHA;&lt;br /&gt;do&lt;br /&gt;SHADOW=`perl senha.pl $SENHA`;&lt;br /&gt;useradd $USUARIO -d $HOMEUSER -s $SHELLUSER -p $SHADOW&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;Paz a todos e inté.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109449543356007253?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109449543356007253/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109449543356007253' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109449543356007253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109449543356007253'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/rapidinha-de-shell-3.html' title=' Rapidinha de shell #3'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109415507011443602</id><published>2004-09-02T16:42:00.000-03:00</published><updated>2004-09-02T16:59:52.720-03:00</updated><title type='text'>Rapidinha de shell #2</title><content type='html'>Você está com aquele servidorzão e precisa criar 20 usuários, tu respira fundo e diz, agora fu......, então você para senta e analisa(mas não empolgue) e diz que essoW eu tenho shell, então cria um arquivinho texto com o nome dos seus usuários:&lt;br /&gt;&lt;br /&gt;cat usuarios.list&lt;br /&gt;josefina&lt;br /&gt;mariazinha&lt;br /&gt;joca&lt;br /&gt;marcuzim&lt;br /&gt;eduardo&lt;br /&gt;.......&lt;br /&gt;&lt;br /&gt;Pede licença pra patente da microsoft e salva, e logo após aplica o nosso bom e velho shell:&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#Determine qual será o shell e o home de seus usuários, no meu caso não necessito que meus usuários tenham shell.&lt;br /&gt;&lt;br /&gt;SHELL="/bin/false"&lt;br /&gt;HOME="/bin/false"&lt;br /&gt;&lt;br /&gt;for acrescenta in `cat usuarios.list`;&lt;br /&gt;do&lt;br /&gt;&lt;br /&gt;   useradd $acrescenta -d $HOME -s $SHELL;&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;Então é isso aí até a próxima rapidinha, onde juntaremos tudo num balaio de gato.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109415507011443602?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109415507011443602/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109415507011443602' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109415507011443602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109415507011443602'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/rapidinha-de-shell-2.html' title='Rapidinha de shell #2'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166774.post-109408878821608442</id><published>2004-09-01T22:31:00.000-03:00</published><updated>2004-09-13T14:39:37.593-03:00</updated><title type='text'>Rapidinha de shell #1</title><content type='html'>Você tem uma renca de usuários e quer gerar senhas pra eles, e não sabe como?&lt;br /&gt;Crie um arquivinho texto com o nome de todos, um por linha, beleza, criou?&lt;br /&gt;Então vamos lá, utilizaremos uma ferramenta GNU simples, o mkpasswd, veja o que podemos fazer:&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;#Colocamos onde se encontra o arquivo criado de usuários;&lt;br /&gt;PASSWD="/home/p0lux/usuarios"&lt;br /&gt;&lt;br /&gt;#Um simples loop para gerar a senha de todos usuários&lt;br /&gt;for gera in `cat $PASSWD`;&lt;br /&gt;        do SENHA=`mkpasswd -l 8 -d 4 -C 0 -c 4 -s 0`;&lt;br /&gt;&lt;br /&gt;        echo -e "$gera\t\t$SENHA";&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;Também poderia ser utilizado o sed, para pegar os arquivos direto do passwd, mas isso fica pra próxima, quer saber a sintaxe utilizada?&lt;br /&gt;man mkpasswd&lt;br /&gt;&lt;br /&gt;[   ]'s Bruno&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166774-109408878821608442?l=javaslack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javaslack.blogspot.com/feeds/109408878821608442/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8166774&amp;postID=109408878821608442' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109408878821608442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166774/posts/default/109408878821608442'/><link rel='alternate' type='text/html' href='http://javaslack.blogspot.com/2004/09/rapidinha-de-shell-1.html' title='Rapidinha de shell #1'/><author><name>javaslack</name><uri>http://www.blogger.com/profile/14579946506330568749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.vivaolinux.com.br/imagens/fotos/zoiudim2.png'/></author><thr:total>0</thr:total></entry></feed>
