2014-12-04 123 views
1

我正在使用Spring MVC创建一个Web应用程序。这个应用程序带来了一些图片,并将它们保存到位于web应用程序目录的目录,然后返回像下面这样的观点:如何在添加新文件后在eclipse中刷新工作区?

<table> 
    <tbody> 
    <tr> 
     <td><IMG SRC="http://locahost:8180/app/images/image1.png"></IMG></td> 
     <td><IMG SRC="http://locahost:8180/app/images/image2.png"></IMG></td> 
    </tr> 
    </tbody> 
</table> 

问题是我没有得到的图像,我必须在执行刷新Eclipse来获取这些图像。 任何想法?

+1

您生成的任何文件都存在于文件系统中,但在刷新(F5)之前不会显示在Eclipse中。 – 2014-12-04 22:10:17

+0

无论如何在添加一些新文件后刷新programmaticaly? – Martin 2014-12-04 22:13:43

+1

你可以编程你的手指推F5 XD – nLee 2014-12-04 22:19:14

回答

0

好的,以便详细阐述我在评论中提供的链接。

我在做你所需要的两种方式绊倒(实际上并没有做到他们,但他们似乎为别人打工):

1)刷新Eclipse工作区使用ANT(Answer Link)

如前所述在链接,Eclipse提供,您可以使用各种用途的Ant任务,其中之一是<eclipse.refreshLocal />标签:

<eclipse.refreshLocal resource="MyProject/MyFolder" depth="infinite"/> 
  • 资源是相对于工作空间
  • 深度资源路径可以是下列之一:0,1或无限

此外,如果你得到一个构建失败错误,请确定你没有在Eclipse JRE之外运行ANT。要解决这个问题,打开外部工具对话框(运行>外部工具>打开外部工具对话框...),并确保JRE选项卡设置为“在与工作区相同的JRE中运行”。

2)刷新Eclipse工作区以编程方式使用IResource.refreshLocal() API(Answer Link)

正如联回答说,你可以在项目的根,一个特定的文件夹或单个文件做到这一点。

要刷新工作区中的所有项目,只需枚举所有使用ResourcesPlugin.getWorkspace().getRoot().getProjects() API的项目并依次刷新。

下面是另一个示例(来自API网站),它使用FileOutputStream设置文件的内容,然后使用refreshLocal来同步工作区。

private void externalModify(IFile iFile) throws ... { 
     java.io.File file = iFile.getLocation().toFile(); 
     FileOutputStream fOut = new FileOutputStream(file); 
     fOut.write("Written by FileOutputStream".getBytes()); 
     iFile.refreshLocal(IResource.DEPTH_ZERO, null); 
    }