# Unable to Install Java Package as a Library

**URL:** https://discourse.processing.org/t/unable-to-install-java-package-as-a-library/47651
**Category:** Libraries
**Created:** [December 21, 2025, 3:49am UTC](https://discourse.processing.org/t/unable-to-install-java-package-as-a-library/47651 "2025-12-21T03:49:43Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)
#### Post date: [December 21, 2025, 3:49am UTC](https://discourse.processing.org/t/unable-to-install-java-package-as-a-library/47651/1 "2025-12-21T03:49:44Z")

</div>

There is a java package called ‘com.dd.plist’ that I would like to install as a library in Processing 4.4.10 (_[https://github.com/3breadt/dd-plist](https://github.com/3breadt/dd-plist)_). It contains 28 individual files and has no available .jar file. The only way that I can sort of get it to work is to drag 'n drop the files individually onto the sketch opened in the editor. However, doing that for all 28 files is not practical. I have tried adding a folder to Processing/libraries and then creating a nested folder entitled ‘library’ containing the /com/dd/plist folders. It’s unclear to me what to name the Processing/libraries/??? folder; nothing that I have tried so far seems to work. The package name is ‘com.dd.plist’ but Processing seems to think the package is ‘com.dd’ according to the error message. Thanks in advance for any insight into how I can do this.

**Source code:**

```processing
import com.dd.plist.*;
import java.io.File;

void setup() {
  surface.setVisible(false);
  try {
    // Create the root dictionary
    NSDictionary rootDict = new NSDictionary();

    // Add standard Info.plist keys
    rootDict.put("CFBundleName", "MyJavaApp");
    rootDict.put("CFBundleExecutable", "universalJavaApplicationStub"); // Common for bundled apps
    rootDict.put("CFBundleIdentifier", "com.example.myjavaapp");
    rootDict.put("CFBundleVersion", "1.0");
    rootDict.put("LSUIElement", true); // Example of a boolean key

    // Define Java-specific keys within a "Java" dictionary (optional, for older configs)
    NSDictionary javaDict = new NSDictionary();
    javaDict.put("ClassPath", "$JAVAROOT/my-app.jar");
    javaDict.put("MainClass", "com.example.MyMainClass");
    rootDict.put("Java", javaDict);

    // Write the dictionary to a file in XML format
    File outFile = new File("Info.plist");
    PropertyListParser.saveAsXML(rootDict, outFile);
    println("Info.plist created successfully at: " + outFile.getAbsolutePath());

    // You can also save in binary format if needed
    // PropertyListParser.saveAsBinary(rootDict, outFile);
  }
  catch (Exception e) {
    e.printStackTrace();
  }
}

```

**Error mesage:**

```auto
No library found for com.dd.plist
Libraries must be installed in a folder named 'libraries' inside the sketchbook folder (see the Preferences window).
The package “com.dd” does not exist. You might be missing a library.

```

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [December 21, 2025, 5:24pm UTC](https://discourse.processing.org/t/unable-to-install-java-package-as-a-library/47651/2 "2025-12-21T17:24:08Z")

</div>

> [@svan](#):
>
> It contains 28 individual files and has no available .jar file.

Releases:

> **[Releases · 3breadt/dd-plist](https://github.com/3breadt/dd-plist/releases)**
>
> A java library providing support for ASCII, XML and binary property lists. - 3breadt/dd-plist

I am seeing a JAR file in there:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/b/1/b1e621fbcd29794c0292f1b9f4bbcaef1526f431.png)

This appears to be for _macOS_ only.

`:)`

---

<div class="post-metadata">

### Author: ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)
#### Post date: [December 21, 2025, 9:00pm UTC](https://discourse.processing.org/t/unable-to-install-java-package-as-a-library/47651/3 "2025-12-21T21:00:53Z")

</div>

I downloaded the package from the ‘Code‘ button and did not look under the ‘Releases‘ button where the .jar was located. Thanks for the tip. After drag ‘n dropping the .jar file I’m now one step closer to getting it to work; the old error message is gone but now there is a null pointer exception that I’ll try to fix.

> [@glv](#):
>
> This appears to be for _macOS_ only.

Correct, but it can potentially be used by a cross-platform Processing app to create a mac app, however, this remains to be seen.

**Addendum:**

Binary format output after null pointer fix:

 ![plist](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/5/a/5ad998303cb61b4667e59b74f6624c4fcd236bd7.png)
