Как найти путь к текущему проекту в Java, Eclipse?

Я пытаюсь найти путь к текущему запущенному / отлаживаемому проекту программно на Java, я посмотрел в Google, и то, что я нашел, было System.getProperty("user.id") , которое не System.getProperty("user.id") меня к пути проекта.

Я знаю, что команда Environment.currentDirectory в C # предоставляет путь к текущему запущенному / отлаживаемому проекту, поэтому я уверен, что в Java тоже должно быть аналогично.

Поэтому я спрашиваю, может ли кто-нибудь сказать мне или дать мне код, как программно определить путь к текущему запущенному / отлаживаемому проекту?

edit : Я пишу плагин, который загружается с запуском eclipse. плагин добавляет кнопку в рабочую среду eclipse, в коде плагина, когда я нажимаю кнопку, я ищу текущий путь к каталогу.

моя цель в том, что когда, например, я отлаживаю проект и затем нажимаю кнопку, появится окно, представляющее путь отлаживаемого проекта, спасибо

7 Solutions collect form web for “Как найти путь к текущему проекту в Java, Eclipse?”

Два пути

 System.getProperty("user.dir"); 

или это

 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 

Идея состоит в том, чтобы получить текущую папку с «.», А затем получить абсолютную позицию и удалить из нее имя файла, поэтому из чего-то вроде

 /home/shark/eclipse/workspace/project/src/com/package/name/bin/Class.class 

когда вы удаляете Class.class, вы получите

 /home/shark/eclipse/workspace/project/src/com/package/name/bin/ 

который является тем, что вы хотите.

Используйте ключ user.dir для получения местоположения проекта с помощью java.

Код:

 System.out.println("Present Project Directory : "+ System.getProperty("user.dir")); 

Вывод:

Present Project Directory :C:\workspace\MyEclipse 10\examples\MySqlMavenDomain

Для отображения всех системных свойств просто используйте System.getProperties();

Использовать значение Key в System.getProperty("java.version"); для получения вывода.

Код:

 Properties properties = System.getProperties(); Enumeration 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())); } 

Вывод:

 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 

Для получения дополнительной информации см. Class System

Как насчет System.getProperty("user.dir") ? Это даст вам рабочий каталог, с которого была запущена ваша программа.

См. « Свойства системы» из учебника Java для обзора свойств системы Java.

Вы не можете.

Java-проекты не имеют ОДНОГО пути! Java-проекты имеют несколько шаблонов, даже если один class может иметь несколько местоположений в разных classах в одном «проекте».

Так что если у вас есть калькулятор.jar, расположенный в вашей JRE / lib и один calculator.jar с теми же classами на компакт-диске: если вы выполняете calc.jar classы с компакт-диска, java-vm будет брать classы из JRE / Lib!

Эта проблема часто возникает для программистов, которым нравится загружать ресурсы, развернутые внутри проекта. В этом случае,

 System.getResource("/likebutton.png") 

взято, например.

  File currDir = new File("."); String path = currDir.getAbsolutePath(); System.out.println(path); 

Это напечатает . в конце. Чтобы удалить, просто обрезайте строку одним символом, например:

  File currDir = new File("."); String path = currDir.getAbsolutePath(); path = path.substring(0, path.length()-1); System.out.println(path); 

вы можете получить текущий путь к проекту, используя System.getProperty("user.dir")

в этом методе вы пишете имя ключа, чтобы получить разные пути, и если вы не знаете ключ, вы можете найти все свойства System.getProperties() этот метод возвращает все свойство с ключом. и вы можете найти его вручную.

и напишите System.getProperty("KEY NAME")

и получите требуемый путь.

Это fragment кода для извлечения пути к текущему запущенному проекту веб-приложения в 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; } 

Источник: https://dzone.com/articles/get-current-web-application

  • Что такое PATH и другие переменные среды, и как я могу их установить или использовать?
  • Где хранить скрипты bash, которые все пользователи могут выполнять на Debian?
  • Избегайте нежелательного пути в Zip-файле
  • Как добавить собственную библиотеку в «java.library.path» с запуском Eclipse (вместо того, чтобы переопределять его)
  • Найти имя файла из полного пути к файлу
  • Где $ PATH устанавливается в OS X 10.6 Snow Leopard?
  • Компилятор Linux C
  • Как я могу обновить установку Python по умолчанию или исправить мой $ PATH на Mac OS X 10.6.7?
  • Проверьте правильность пути
  • Как избежать дублирования переменной пути в csh
  • Как объединить пути в Java?
  • Interesting Posts
    Давайте будем гением компьютера.