Bom… os parametros que eu passo para a aplicacao pode conter espaços então eu envolvo eles em aspas, porem estas aspas vao junto com o valor, eu acabo recebendo o “parametro1” de verdade (com as aspas), já no windows não vem com as aspas… MAs creio que isso é negócio do Linux/windows neh? isso eu sei resolver… porém quero saber se passando um caminho do classpath com espaços como no meu exemplo /usr/local/minha aplicacao/* vou ter problema no Linux?? eu sei que no windows deve envolver em aspas, e isso funciona perfeitamente… porém gostaria de saber no linux como eu posso resolver isso… por favor alguém sabe?
Sim, vai ter problema, porque o Linux / Unix vai expandir o “" para todos os arquivos e subdiretórios que estão no primeiro nível de "/usr/local/minha aplicacao/”. Isso não é feito pelo java e sim pelo interpretador de comandos, ou seja, está fora da jurisdição do java e vai dar problemas.
Outro problema é obviamente o espaço que tem no nome do diretório. O Linux / Unix, como o Windows, precisa de aspas simples ou duplas para lidar com nomes com espaços. Um problema adicional é que muitas ferramentas do Linux / Unix simplesmente não funcionam direito com nomes de arquivos com espaços no meio mesmo usando as aspas, portanto evite tais nomes como a peste.
A
anderson_lp789
coliquei aspas duplas e simples e "\ " no lugar do espaço e não deu certo…
B
bezier_curve
Amigo, você pode renomear seu diretório? Torne seu problema mais simples, resolva-o, e depois veja se consegue resolver o problema (que é mais complexo) de ter espaços em nomes de diretórios. Já aviso que no Linux / Unix é fortemente desaconselhado você usar nomes de diretórios ou arquivos com espaços.
A
anderson_lp789
sem espaços funciona perfeitamente sem as aspas simples ou duplas…
o duro é fazer esse tipo de recomendação (utilização de nomes sem espaços de diretorio) para o uso do meu aplicativo :?
tentei fazer o SET CLASSPATH=/usr/local/minha aplicacao/*
Leia um livro de Linux / Unix, e mais importante, saiba para que cada comando serve.
E também entre na filosofia do Linux / Unix.
Uma das coisas dessa filosofia é que maiúsculas e minúsculas são diferentes, espaços são relevantes, e praticamente não existem comandos do sistema que estejam em maiúsculas.
]
O comando SET CLASSPATH=… do Windows é equivalente mais ou menos a:
setenv CLASSPATH=…
ou
CLASSPATH=…
ou
export CLASSPATH=…
depende de onde você vai usar. Provavelmente você usará a alternativa 2, a menos que você use o C-shell (alternativa 1) ou então queira escrever um script que mexa nos valores de variáveis de ambiente (nesse caso, é a alternativa 3).