Bien sûr, il y a.
Appelez System.getProperty("user.dir"));
pour obtenir votre répertoire actuel, et concattez le chemin relatif au résultat.
par exemple.
String path=System.getProperty("user.dir"));
path+=realtivePath;
EDIT:
Calrification:
Par exemple: Le programme que vous souhaitez exécuter est toujours situé à deux dossiers en arrière, puis à Temp dir.
Ainsi, le chemin relatif est ..\\..\Temp\prog.exe.
Disons que dans un ordinateur que vous avez votre programme situé dans C: \ Users \ user \ Documents \ Program, donc c'est le répertoire de travail.
Alors:
String path=System.getProperty("user.dir")); //returns the working directory
String realtivePath="\\ ..\\..\\Temp"; //no matter what is the first path, this is the relatuve location to the current dir
path+=realtivePath;
//in this example, path now equals C:\Users\user\Documents\Program\..\..\Temp\prog.exe = C:\Users\user\Temp\prog.exe
Process p = Runtime.getRuntime().exec(command.toString(), null, new File(path));
Votre programme doit demander le chemin en entrée de l'utilisateur. Il n'y a aucun moyen de couvrir tous les chemins possibles. Ou, vous pouvez créer un fichier de configuration, où vous/utilisateur fournira le chemin d'accès au processus, puis le lire dans votre programme. –
Le dossier 'Cognity' a-t-il un chemin relatif vers ce programme Java lui-même? – msangel
Vous pouvez vérifier la nécessité d'un chemin système vers l'application – maress