J'essaie de localiser le chemin du projet en cours d'exécution/débogué en Java, j'ai regardé dans Google et j'ai trouvé System.getProperty("user.id")
, qui ne m'avait pas fourni le chemin du projet.
Je sais que la commande Environment.currentDirectory
en C # donne le chemin du projet en cours d'exécution/débogué, je suis donc sûr qu'il doit exister une méthode similaire en Java également.
Alors je demande si quelqu'un pourrait me dire ou me donner un code à comment localiser le chemin du projet en cours/débogué par programme?
edit : J'écris un plugin qui se charge avec Eclipse start . le plugin ajoute un bouton au plan de travail d'Eclipse, avec dans le code du plugin quand je clique sur le bouton, je recherche pour le chemin du répertoire actuel.
mon but est que lorsque, par exemple, je débogue un projet, puis que je clique sur le bouton, une fenêtre apparaît indiquant le chemin du projet débogué, merci
Deux manières
System.getProperty("user.dir");
ou ca
File currentDirFile = new File(".");
String helper = currentDirFile.getAbsolutePath();
String currentDir = helper.substring(0, helper.length() - currentDirFile.getCanonicalPath().length());//this line may need a try-catch block
L’idée est d’obtenir le dossier actuel avec ".", Puis de lui attribuer la position absolue et de supprimer le nom de fichier,
/home/shark/Eclipse/workspace/project/src/com/package/name/bin/Class.class
lorsque vous supprimez Class.class, vous obtenez
/home/shark/Eclipse/workspace/project/src/com/package/name/bin/
ce qui est un peu ce que vous voulez.
Utilisez la clé user.dir
pour obtenir l'emplacement du projet à l'aide de Java.
Code:
System.out.println("Present Project Directory : "+ System.getProperty("user.dir"));
OutPut:
Present Project Directory :C:\workspace\MyEclipse 10\examples\MySqlMavenDomain
Pour afficher toutes les propriétés du système, utilisez simplement System.getProperties();
Utilisez Key
valeur dans System.getProperty("Java.version");
pour obtenir une sortie.
Code:
Properties properties = System.getProperties();
Enumeration<Object> enumeration = properties.keys();
for (int i = 0; i < properties.size(); i++) {
Object obj = enumeration.nextElement();
System.out.println("Key: "+obj+"\tOutPut= "+System.getProperty(obj.toString()));
}
OutPut:
Key: Java.runtime.name OutPut= Java(TM) SE Runtime Environment
Key: Sun.boot.library.path OutPut= C:\Program Files\Java\jdk1.7.0_45\jre\bin
Key: Java.vm.version OutPut= 24.45-b08
Key: Java.vm.vendor OutPut= Oracle Corporation
Key: Java.vendor.url OutPut= http://Java.Oracle.com/
Key: path.separator OutPut= ;
Key: Java.vm.name OutPut= Java HotSpot(TM) Client VM
Key: file.encoding.pkg OutPut= Sun.io
Key: user.country OutPut= US
Key: user.script OutPut=
Key: Sun.Java.launcher OutPut= Sun_STANDARD
Key: Sun.os.patch.level OutPut= Service Pack 3
Key: Java.vm.specification.name OutPut= Java Virtual Machine Specification
Key: user.dir OutPut= C:\workspace\MyEclipse 10\examples\MySqlMavenDomain
Key: Java.runtime.version OutPut= 1.7.0_45-b18
Key: Java.awt.graphicsenv OutPut= Sun.awt.Win32GraphicsEnvironment
Key: Java.endorsed.dirs OutPut= C:\Program Files\Java\jdk1.7.0_45\jre\lib\endorsed
Key: os.Arch OutPut= x86
Key: Java.io.tmpdir OutPut= C:\DOCUME~1\UDAYP~2.PBS\LOCALS~1\Temp\
Key: line.separator OutPut=
Key: Java.vm.specification.vendor OutPut= Oracle Corporation
Key: user.variant OutPut=
Key: os.name OutPut= Windows XP
Key: Sun.jnu.encoding OutPut= Cp1252
Key: Java.library.path OutPut= C:\Program Files\Java\jdk1.7.0_45\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/MyEclipse/Common/binary/com.Sun.Java.jdk.win32.x86_1.6.0.013/jre/bin/client;C:/Program Files/MyEclipse/Common/binary/com.Sun.Java.jdk.win32.x86_1.6.0.013/jre/bin;C:/Program Files/MyEclipse/Common/binary/com.Sun.Java.jdk.win32.x86_1.6.0.013/jre/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;D:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;D:\Program Files\Microsoft SQL Server\100\Tools\Binn\;D:\Program Files\Microsoft SQL Server\100\DTS\Binn\;.
Key: Java.specification.name OutPut= Java Platform API Specification
Key: Java.class.version OutPut= 51.0
Key: Sun.management.compiler OutPut= HotSpot Client Compiler
Key: os.version OutPut= 5.1
Key: user.home OutPut= C:\Documents and Settings\uday.p.PBSYSTEMS
Key: user.timezone OutPut=
Key: Java.awt.printerjob OutPut= Sun.awt.windows.WPrinterJob
Key: file.encoding OutPut= UTF-8
Key: Java.specification.version OutPut= 1.7
Key: Java.class.path OutPut= C:\workspace\MyEclipse 10\examples\MySqlMavenDomain\target\test-classes;C:\workspace\MyEclipse 10\examples\MySqlMavenDomain\target\classes;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\jstl\jstl\1.2\jstl-1.2.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\mysql\mysql-connector-Java\5.1.28\mysql-connector-Java-5.1.28.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\javax\mail\mail\1.4.7\mail-1.4.7.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\junit\junit\4.11\junit-4.11.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\hibernate\hibernate-core\4.3.0.Final\hibernate-core-4.3.0.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\jboss\logging\jboss-logging\3.1.3.GA\jboss-logging-3.1.3.GA.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\jboss\logging\jboss-logging-annotations\1.2.0.Beta1\jboss-logging-annotations-1.2.0.Beta1.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.0.0.Final\jboss-transaction-api_1.2_spec-1.0.0.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\hibernate\common\hibernate-commons-annotations\4.0.4.Final\hibernate-commons-annotations-4.0.4.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\javassist\javassist\3.18.1-GA\javassist-3.18.1-GA.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\jboss\jandex\1.1.0.Final\jandex-1.1.0.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\hibernate\hibernate-entitymanager\4.3.0.Final\hibernate-entitymanager-4.3.0.Final.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-dbcp\commons-dbcp\1.4\commons-dbcp-1.4.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-fileupload\commons-fileupload\1.3\commons-fileupload-1.3.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-net\commons-net\3.3\commons-net-3.3.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-codec\commons-codec\1.9\commons-codec-1.9.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-pool\commons-pool\1.6\commons-pool-1.6.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\commons-beanutils\commons-beanutils\1.9.0\commons-beanutils-1.9.0.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\Apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-orm\3.2.6.RELEASE\spring-orm-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-jdbc\3.2.6.RELEASE\spring-jdbc-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-tx\3.2.6.RELEASE\spring-tx-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-web\3.2.6.RELEASE\spring-web-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-aop\3.2.6.RELEASE\spring-aop-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-webmvc\3.2.6.RELEASE\spring-webmvc-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-aspects\3.2.6.RELEASE\spring-aspects-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\aspectj\aspectjweaver\1.7.2\aspectjweaver-1.7.2.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-beans\3.2.6.RELEASE\spring-beans-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-context\3.2.6.RELEASE\spring-context-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-context-support\3.2.6.RELEASE\spring-context-support-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-core\3.2.6.RELEASE\spring-core-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-expression\3.2.6.RELEASE\spring-expression-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-instrument\3.2.6.RELEASE\spring-instrument-3.2.6.RELEASE.jar;C:\Documents and Settings\uday.p.PBSYSTEMS\.m2\repository\org\springframework\spring-instrument-Tomcat\3.2.6.RELEASE\spring-instrument-Tomcat-3.2.6.RELEASE.jar
Key: user.name OutPut= uday.p
Key: Java.vm.specification.version OutPut= 1.7
Key: Sun.Java.command OutPut= com.uk.mysqlmaven.domain.test.UserLoginDetails
Key: Java.home OutPut= C:\Program Files\Java\jdk1.7.0_45\jre
Key: Sun.Arch.data.model OutPut= 32
Key: user.language OutPut= en
Key: Java.specification.vendor OutPut= Oracle Corporation
Key: awt.toolkit OutPut= Sun.awt.windows.WToolkit
Key: Java.vm.info OutPut= mixed mode, sharing
Key: Java.version OutPut= 1.7.0_45
Key: Java.ext.dirs OutPut= C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
Key: Sun.boot.class.path OutPut= C:\Program Files\Java\jdk1.7.0_45\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_45\jre\classes
Key: Java.vendor OutPut= Oracle Corporation
Key: file.separator OutPut= \
Key: Java.vendor.url.bug OutPut= http://bugreport.Sun.com/bugreport/
Key: Sun.io.unicode.encoding OutPut= UnicodeLittle
Key: Sun.cpu.endian OutPut= little
Key: Sun.desktop OutPut= windows
Key: Sun.cpu.isalist OutPut= pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
Pour plus de détails, voir Class System
Qu'en est-il de System.getProperty("user.dir")
? Cela vous donnera le répertoire de travail à partir duquel votre programme a été lancé.
Voir Propriétés système dans le didacticiel Java pour obtenir un aperçu des propriétés système de Java.
Java-Projects n'a pas UN SEUL chemin! Java-Projects a plusieurs chemins, même si une classe peut avoir plusieurs emplacements dans différents classpath dans un "projet".
Donc si vous avez un calculator.jar situé dans votre JRE/lib et un calculator.jar avec les mêmes classes sur un CD: si vous exécutez le calculator.jar les classes du CD, Java-vm prendra les classes JRE/lib!
Ce problème concerne souvent les programmeurs qui aiment charger des ressources déployées dans le projet. Dans ce cas,
System.getResource("/likebutton.png")
est pris par exemple.
Il s'agit d'un extrait de code permettant de récupérer le chemin du projet d'application Web en cours d'exécution en Java.
public String getPath() throws UnsupportedEncodingException {
String path = this.getClass().getClassLoader().getResource("").getPath();
String fullPath = URLDecoder.decode(path, "UTF-8");
String pathArr[] = fullPath.split("/WEB-INF/classes/");
System.out.println(fullPath);
System.out.println(pathArr[0]);
fullPath = pathArr[0];
return fullPath;
}
Source: https://dzone.com/articles/get-current-web-application
File currDir = new File(".");
String path = currDir.getAbsolutePath();
System.out.println(path);
Ceci imprimera .
à la fin. Pour supprimer, il suffit de tronquer la chaîne d'un caractère, par exemple:
File currDir = new File(".");
String path = currDir.getAbsolutePath();
path = path.substring(0, path.length()-1);
System.out.println(path);
vous pouvez obtenir le chemin du projet actuel, utilisez System.getProperty("user.dir")
dans cette méthode, vous écrivez Nom de clé pour obtenir vos différents chemins. Si vous ne connaissez pas la clé, vous pouvez trouver toutes les propriétés d'utilisation de System.getProperties()
. et vous pouvez trouver le nom de la clé manuellement à partir de celui-ci.
et écrivez System.getProperty("KEY NAME")
et obtenez votre chemin requis.