Problema ao chamar uma aplicação java a partir de outra

Pessoal, meu problema é o seguinte,
desenvolvi uma aplicação java bem simples, que monta um menu a partir de um txt, o qual contem o nome(Label do item do menu) e o caminho(que eu executo usando Runtime.getRuntime.exec() ).

Pois bem, as aplicações em geral funcionam tranquilamente, mas quando se trata de uma aplicação java, a coisa fica um pouco diferente.

Mesmo colocando o “java -jar …” ele não executa lá dentro do meu servidor, mas executado na minha máquina com exatamente o mesmo caminho, ele executa.
Já considerei a possibilidade de ser alguma variável de sistema faltando, mas o mais estranho é que se eu abrir o prompt lá no servidor(onde a aplicação não roda) e digitar o caminho que está no txt, ele executa a aplicação java…

Já gastei os testes que eu tinha pessoal, aguardo sugestões.

Desde já agradeço a atenção de vocês.

Camarada, eu fiz alguns testes aqui e consegui o seguinte.

Classe que chama:

package main;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		File f = new File(".");//local onde será criado o prompt
		Process proc = null;
		try {
			proc = Runtime.getRuntime().exec("cmd", null, f);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (proc != null) {
			BufferedReader in = new BufferedReader(new InputStreamReader(
					proc.getInputStream()));
			PrintWriter out = new PrintWriter(new BufferedWriter(
					new OutputStreamWriter(proc.getOutputStream())), true);
			out.println("cd diretorio");//acessando o diretório que preciso, caso esteja abaixo, utilize cd .. até chegar no nível de acesso ao outro
			out.println("exec");//nome do .bat
			try {
				String line;
				while ((line = in.readLine()) != null) {
					System.out.println(line);
				}
				proc.waitFor();
				in.close();
				out.close();
				proc.destroy();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

E a classe que é executada

package main;

import java.io.File;

import javax.swing.JOptionPane;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		File f = new File(".");
		String caminho = f.getAbsolutePath();
		JOptionPane.showMessageDialog(null, caminho);
	}

}

Fiz o seguinte, criei um jar com a primeira, em meus documentos. Depois, criei a pasta “diretorio” e nela coloquei o jar com a segunda classe e o bat chamado exec.bat, que só executa

java -jar chamado.jar

Fui ao prompt de comando, executei, dentro de meus documentos

java -jar chama.jar

E aguardei, a saída trouxe o JOptionPane, com o diretório correto.

Cara, eu já descobri o problema, só falta a solução.
Os programas do servidor que eu estou tentando executar estão em uma unidade de rede.
Fiz um teste utilizando a aplicação que desenvolvi e ela não consegue executar NADA do que está nessa unidade de rede, nem mesmo um bloco de notas que fiz para testar.
Mas ainda assim, se eu tento executar utilizando o prompt, tá saíndo tranquilo.

Aguardo mais sugestões.

Amigo já verificou as suas permissões na rede?
A sua rede possui domínio?
Apenas no Java é que está dando esse problema?

Então cara depois de isolar o problema na unidade de rede, eu percebi o seguinte.

Essa minha aplicação é aberta no Terminal Service, utilizando uma das opções do Windows Server que, ao invés de inicializar a interface padrão do Windows, inicializa com algum programa a sua escolha.
Dessa forma, a unidade de rede não é mapeada, por isso não consigo acessá-la…

Comentaram comigo que existe um comando do prompt mesmo para mapear uma unidade de rede, alguém aí sabe?

Mais uma vez obrigado à galera que parou um pouco pra tentar me ajudar ae.

Meu velho já tentou utilizar o NET USE?

Não cara, eu não sei mesmo qual é o comando nem como devo utilizá-lo, poderia me dizer, por exemplo, como faria para criar uma unidade de rede X: a partir do ip 10.1.1.1?

Vai em mapear unidade de rede…
depois coloca o caminho que seria: \10.1.1.1\c$

este caminho leva direto para a partição C:
Obs: esta opção não é pelo DOS.

veja se deu certo!

Nããão cara, isso aí eu sei sim, preciso saber como utilizo o comando NET USE que você citou, para mapear uma unidade de rede através do prompt.

opa…
vai no prompt e digita:

net use X: \10.1.1.1\c$

Olha, quase funcionou, só que eu preciso que esse mapeamento seja persistente, pois senão na hora de executar os programas o mapeamento não está mais funcionando, sabe como fazer?
Verifiquei a parte de /persistent do comando, e até consegui criar um mapeamento persistente, porém não consigo fazê-lo persistente se eu especificar a senha na linha de comando, por exemplo :
net use A: \10.1.1.1\teste senha -> faz o mapeamento sem pedir senha do servidor 10.1.1.1
net use A: \10.1.1.1\teste senha /persistent:yes eh isso aqui mais ou menos que eu quero fazer, soh que a sintaxe nao eh essa…

Aguardo sugestoes.