Fórum Aplicação Desktop não localiza arquivo de propriedades #9972

08/10/2009

0

Boa tarde.

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

Alan Santos

Responder

Posts

08/10/2009

Dyego Carmo

O ideal que quando voce fizer o acesso ao arquivo voce especifique o PATH inteiro do arquivo...

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 !

Responder

Gostei + 0

08/10/2009

Alan Santos

Legal, entendi o conceito.

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
Responder

Gostei + 0

08/10/2009

Dyego Carmo

Nao tem como saber...

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()
Responder

Gostei + 0

08/10/2009

Alan Santos

Entendi... resolvi o problema declarando o classpath no atalho do windows.... mas não acho uma solução muito correta.

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar