Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6349851

Allow jar library files inside another jar.

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 6
    • tools
    • jar
    • x86
    • linux

      A DESCRIPTION OF THE REQUEST :
      I have a java app A that uses jar libraries B and C.

      I want to deliver A.jar as a single file for easy delivery and deployment, that can be run using a single command: "java -jar A.jar"

      Unfortunately, there seems to be no simple method to do this. Unpacking B.jar and C.jar before creating A.jar might violate a licence on B.jar. The manifest classpath can't be set to do this.

      In fact, the only solution seems to be a custom classloader. This problem should not be so difficult. It's the most natural thing in the world to want to deliver your app as a single file, and we now have no method to do this.



      JUSTIFICATION :
      Enough developers want this to have someone write a popular solution named One-Jar. (http://www-128.ibm.com/developerworks/java/library/j-onejar/ ) In fact, it is so popular that it was integrated with FatJar Eclipse Plugin.

      Please fix this - this is a real problem for many developers.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      I expected a jar inside a jar file to correctly load it's classes.
      ACTUAL -
      I get assloads of NoClassDefFoundErrors and no simple way to fix it.

      ---------- BEGIN SOURCE ----------
      Include any supporting jar file inside an application jar. Files in the internal jar can't be loaded.
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Get Eclipse and use FatJar Eclipse Plugin, or write your own custom classloader.

            sherman Xueming Shen
            gmanwanisunw Girish Manwani (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: