かずきのBlog
C#やJavaやRubyとメモ書き

目次

Blog 利用状況
  • 投稿数 - 327
  • 記事 - 1
  • コメント - 379
  • トラックバック - 89
ニュース
  • 梅雨なのに雨が?
コメント
プログラマ的自己紹介
  • C#とRubyを趣味で。Javaを仕事で使ってやってます。 WPFをコツコツ勉強中。 IDE大好き。Visual Studio, Eclipse, NetBeansを使用中
お気に入りのツール/IDE
  • Visual Studio 2008 std
  • Eclipse
  • NetBeans6.0以降
  • 自作のツール
プロフィール
  • 大田 一希
  • 1981年1月30日産まれ
  • AB型
  • 左利き
ここ数年
  • 2003年 某大学 大学院 環境学研究科 入学
  • 2005年 某大学 大学院 環境学研究科 卒業
  • 2005年 就職して上京
  • 2007年 わんくま同盟に参加
  • 2008年Q1 倦怠期
  • 2008年Q2 VAIO
アクセサリ
  • あわせて読みたい
  • ログ解析ネット証券

書庫

日記カテゴリ

 

1つ前の投稿とのあわせ技で、プラグイン内に埋め込んだjarファイルをプロジェクトの下のlibフォルダにコピーしてクラスパスに追加するということが出来る。
spring.jarをコピーして追加してクラスパスに追加するコードは下のようになる。

まず、プラグインのプロジェクトの適当なパッケージにjarを追加する。
ここでは、org/yourorghere/module3/spring.jarに置いたとして話を進める。

そして、layer.xmlに登録する。

<folder name="MyArchives">
    <file name="spring.jar" url="nbresloc:/org/yourorghere/module3/spring.jar"></file>
</folder>

後はコードで、コピって追加するだけ。

Project project = ....; // プロジェクトはどうにかしてとってくる
Sources sources = project.getLookup().lookup(Sources.class);
SourceGroup[] groups = sources.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);

// ファイルシステムからjarを取得
FileSystem fs = Repository.getDefault().getDefaultFileSystem();
FileObject springJar = fs.getRoot().getFileObject("MyArchives/spring.jar");

try {
    // libフォルダを作ってコピーする
    FileObject libDir = project.getProjectDirectory().createFolder("lib");
    FileUtil.copyFile(springJar, libDir, springJar.getName());

    // jarファイルをクラスパスへ追加する
    FileObject[] jars = libDir.getChildren();
    URL[] uris = new URL[jars.length];
    for (int i = 0; i < jars.length; i++) {
        uris[i] = FileUtil.getArchiveRoot(jars[i]).getURL();
    }
    ProjectClassPathModifier.addRoots(uris, groups[0].getRootFolder(), ClassPath.COMPILE);
} catch (MalformedURLException ex) {
    Exceptions.printStackTrace(ex);
} catch (IOException ex) {
    Exceptions.printStackTrace(ex);
} catch (UnsupportedOperationException ex) {
    Exceptions.printStackTrace(ex);
}

今日は、これがわかっただけで満足。
来週ものは作ろう。

投稿日時 : 2008年5月9日 18:19
コメント
No comments posted yet.
タイトル  
名前  
Url
コメント