Fórum Aplicação Desktop não localiza arquivo de propriedades #9972
08/10/2009
0
Estou com o seguinte problema e gostaria da ajuda de vocês para resolvê0lo.
Tenho uma aplicação desktop Java SE 1.5 que recebe algumas informações via arquivo de propriedades e outras através da leitura de alguns arquivos txt.
Em tempo de desenvolvimento, tudo funciona perfeitamente, porém, quando chamo o .JAR da aplicação através de linha comando, as propriedades não são localizadas, assim como aplicação não localiza os arquivos txt.
Acredito que o problema esteja no local que esses arquivos estão (raiz da aplicação).
Mas pq em desenvolvimento funciona e depois não?
Onde devo colocar esses arquivos?
Obrigado e no aguardo.
Alan Santos
Curtir tópico
+ 0Posts
08/10/2009
Dyego Carmo
ex:
Nao crie um arquivo assim:
File arquivo = new File("meuArquivo.txt");
Crie assim:
Agora o problema é saber qual o diretorio que voce esta atualmente certo ? Simples:
Tente um:
File arquivo = new File(System.getProperty("user.dir")+"/meuArquivo.txt");
Valeu !
Gostei + 0
08/10/2009
Alan Santos
Mas o diretório do usuário é aquele onde o comando "java -jar ..." for executado, certo?
Sendo assim, como faço para saber o diretório raiz da aplicação, independente de onde for executado o comando?
Obrigado
Gostei + 0
08/10/2009
Dyego Carmo
OU voce define um padrao ex: sempre no c:\MeuDir
OU voce passa o diretorio como parametro da JVM e dae recupera em tempo de execucao:
java -DMeuDiretorioDoArquivo=c:\MeuDir arquivo.jar
Lah dentro voce recupera com System.getProperties()
Gostei + 0
08/10/2009
Alan Santos
Tem como detalhar o classpath no comando java (ou javaw) ?
Diego, um tempo atrás vc respondeu uma dúvida minha sobre controlar transações do JBoss com o TopLink...
Fizemos diversos testes e fiquei de lhe dar um feedback depois... sorry pela demora, mas segue a solução que adotamos.
Foi necessário customizar uma classe para controlar a transação.
public class JBossTransactionController extends JTATransactionController{
public JBossTransactionController() {
System.out.println("Yes");
}
public TransactionManager acquireTransactionManager() throws Exception {
TransactionManager tm = (TransactionManager)jndiLookup("java:/TransactionManager");
return tm;
}
No persistence.xml:
<property name="toplink.target-server" value="br.org.acnsf.util.JBossTransactionController"/>
Valeu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)