我可以帮助你翻译成中文。您在哪里可以找到 Eclipse 图标?

4
我正在寻找一种库、".zip"文件或其他简单的方法,以获取所有的 "eclipse-icons"。 我指的是标签顶部的图标(错误,调试,搜索,任务等等)
你有什么建议吗?

图标位于拥有这些图标的 Eclipse 插件的各个 JAR 包中。 - greg-449
可能是重复的问题:如何从Eclipse获取实体的图标? - Chandrayya G K
4个回答

5

Eclipse实际上有一个特殊的视图显示所有可用的图标:

窗口 ▸ 显示视图 ▸ 其他... ▸ 插件开发 ▸ 插件图片浏览器

插件图片浏览器


3

遗憾的是,这个非常有用的网站似乎已经不再在线了。 - raner

0

我发现编写一个小程序来提取图像要容易得多。下面的代码从Eclipse插件目录中的JAR文件中提取所有*.png。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ExtractEclipseIcons {

    public static void main(String[] args) {
        String dir="C:\\eclipse\\e47dtp\\eclipse\\plugins";

        for (File file : new File(dir).listFiles()) {
            if(file.getName().endsWith(".jar")) {
                unpackImagesFromJAR(file);
            }
        }
    }

    private static void unpackImagesFromJAR(File file) {
        try (ZipFile zip = new ZipFile(file)){
            for (ZipEntry ze : Collections.list(zip.entries())) {
                String name = ze.getName();
                if(name.endsWith(".png")) {
                    try(InputStream in = zip.getInputStream(ze)){
                        String outname = file.getName()+"/"+name;
                        File outfile = new File("data/"+outname.replace('/', '_').replace('\\', '_'));
                        stream2File(in,outfile);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void stream2File(InputStream is, File file) throws IOException {
        byte[] buffer = new byte[8 * 1024];
        try {
            OutputStream output = new FileOutputStream(file);
            try {
                int bytesRead;
                while ((bytesRead = is.read(buffer)) != -1) {
                    output.write(buffer, 0, bytesRead);
                }
            } finally {
                output.close();
            }
        } finally {
            is.close();
        }
    }
}

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接