Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Eclipse插件获取PackageExplorer中所选节点的完整路径?_Java_Eclipse_Plugins - Fatal编程技术网

Java 如何从Eclipse插件获取PackageExplorer中所选节点的完整路径?

Java 如何从Eclipse插件获取PackageExplorer中所选节点的完整路径?,java,eclipse,plugins,Java,Eclipse,Plugins,我试图在PackageExplorer中获取所选节点的完整路径,该节点是一个文件夹或包,而不是Eclipse Ganymede插件中的文件。我尝试了第页提到的方法,但每当我在代码中使用以下行时 IFile file=(IFile)structured.getFirstElement();(这个) IPath path=file.getLocation() 插件不工作,不响应,也不会给出异常警告。当我将IFile声明更改为Object声明时,一切正常。但我需要获取文件或文件夹以获取操作的完整路径

我试图在PackageExplorer中获取所选节点的完整路径,该节点是一个文件夹或包,而不是Eclipse Ganymede插件中的文件。我尝试了第页提到的方法,但每当我在代码中使用以下行时

IFile file=(IFile)structured.getFirstElement();(这个) IPath path=file.getLocation()

插件不工作,不响应,也不会给出异常警告。当我将IFile声明更改为Object声明时,一切正常。但我需要获取文件或文件夹以获取操作的完整路径


任何帮助都将不胜感激……

可能是您应该调试代码并检查选择的第一个元素的实际类型

在使用-consolelog选项进行测试时,还应该启动第二个eclipse实例,以便将错误日志重定向到控制台。
(有关错误日志的信息,如果您使用eclipse启动配置从SDK eclipse运行应用程序,您必须检查第二个实例的错误日志以查看错误,而不是第一个eclipse实例的错误日志…我习惯于看到人们混淆这一点)

我发现了这个问题。我使用IJavaElement而不是IFile。我通过使用 IPackageFragmentRoot a=(IPackageFragmentRoot)b.getParent(); IJavaElement[]c=a.getChildren()

。在此之前,我将org.eclipse.jdt.core.dom的导入包添加到插件的依赖项中。现在,我可以获取每个IJavaElement的完整路径,无论它是文件还是文件夹。

您所说的“当我将IFile声明更改为Object声明时,一切正常”是什么意思??这意味着它不适合我的演员。