MANIFEST.MF を読み込む

マニュフェストファイルの作成ダイアログを開くときに、もしすでに MANIFEST.MF があるのであれば読み込むようにしたいと思います。

こういう処理は JDK だけでできるので楽ですね。次のようなルーチンを作って読み込みを行うようにしました。

    private void readManifest() {
        File manifest = new File(project.getProject().getLocation().toOSString()
                + "/" + MANIFEST);
        
        if (manifest.exists()) {
            BufferedReader reader = null;
            
            try {
                reader = new BufferedReader(new FileReader(manifest));

                while (true) {
                    String line = reader.readLine();
                    if (line == null) {
                        return;
                    }
               
                    if (line.startsWith(TITLE_ITEM)) {
                        titleText.setText(line.substring(TITLE_ITEM.length()).trim());
                    } else if (line.startsWith(MAIN_CLASS_ITEM)) {
                        mainClassText.setText(line.substring(MAIN_CLASS_ITEM.length()).trim());
                    } else if (line.startsWith(ICON_FILE_ITEM)) {
                        iconFilenameText.setText(line.substring(ICON_FILE_ITEM.length()).trim());
                    } else if (line.startsWith(CONFIG_FILE_ITEM)) {
                        configFilenameText.setText(line.substring(CONFIG_FILE_ITEM.length()).trim());
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

コードの中で出てくる TITLE_ITEM とかは "Implementation-Title:" などの MANIFEST.MF に記述するものを定数化したものです。

ちょっと if 文が長いのでいやなのですが、まぁいいでしょう。