Если вы ищете путь к файлу, используйте это:
TopComponent activeTC = TopComponent.getRegistry().getActivated();
DataObject dataLookup = activeTC.getLookup().lookup(DataObject.class);
String filePath = FileUtil.toFile(dataLookup.getPrimaryFile()).getAbsolutePath();
Это даст вам путь к файлу, который выбран в данный момент.
Если вы хотите получитьпуть к основному проекту, вы можете использовать это: (взято из ответа здесь )
Lookup lookup = Utilities.actionsGlobalContext();
Project project = lookup.lookup(Project.class);
FileObject projectDir = project.getProjectDirectory();
String projectLocation = projectDir.getPath();
Проблема, связанная с этим, заключается в том, что, если вы не выбрали явно данный проект прямо перед этимзапустив этот код, он не видит ни одного проекта в качестве основного проекта.
Поэтому, после установки проекта с помощью Project project = lookup.lookup(Project.class);
, я бы проверил, является ли он пустым, и если это так, используйте первыйблок кода выше, чтобы получить текущий путь к файлу.