制作包含源和项目结构的.jar文件?

时间:2009-05-11 14:01:03

标签: java ant jar

我想知道antjava

是否可行

我有一个Java项目,如下所示:

./
  build.xml
  src/
    com/
      example/
        {.java files here} 
  bin/
    com/
      example/
        {compiled .class files here} 
  lib/
    {3rd-party jar files here}
  dist/
    {jar file(s) here}

我知道如何创建一个包含bin/目录中的东西的.jar文件,并使用正确的清单使其运行我的主Java类。

如果可能,我想做的是创建一个.jar文件:

  1. Java可以执行(“java -jar myproject.jar”)
  2. 其他人可以解压缩以创建项目结构。 (包括除“dist /”目录外的所有子目录)
  3. 这可能吗?我似乎无法告诉Java使用.jar文件的bin /子目录作为类路径,我可能会以某种方式搞砸语法。

    编辑好的,这听起来像是试图让一个对象服务于两个(太多)目的。我放弃了这种方法,而是创建一个标准的.jar文件作为可执行文件,并创建一个带有源的.zip文件(build.xml + src和lib目录)。这样有两个简单的下载,超过1个文件,但不是太糟糕。

2 个答案:

答案 0 :(得分:4)

不,UrlClassLoader总是尝试在根目录中查找类,而jar URL总是会根据jar文件的根目录获取条目。

可以创建一个jar文件,其中包含来自root的二进制文件,但是src下的源文件等等。这不会太糟糕,假设你确实只有com唯一的“根”包。

答案 1 :(得分:0)

可以将您的项目放在公共SVN服务器上,并且只包括如何检查来源的说明 - 您也可以从其他人的签到和改进中受益(希望不是故意破坏) )。