BND(1)

πŸ’… bnd β€” the BND(1) era πŸ’…

okay bestie, pull up a chair 🫢 this is the manual page for bnd, living in section 1 of the manual, and it's the one shipped in BND for Debian GNU/Linux. it's giving "swiss army knife but make it OSGi" and honestly? iconic.


✨ NAME ✨

bnd β€” create and diagnose OSGi bundles. that's the whole vibe. πŸ’–


🌸 SYNOPSIS 🌸

bnd [general-options] [cmd] [cmd-options]

bnd [general-options] <file>.jar

bnd [general-options] <file>.bnd

so like, three whole ways in. general options, then a command, then that command's options. or you just yeet a .jar at it. or you yeet a .bnd file at it. pick your fighter ✨


πŸ’œ DESCRIPTION πŸ’œ

the bnd tool helps you create and diagnose OSGi bundles β€” it's genuinely so good at this, no cap. the key functions are, and I quote the lore:

  • show the manifest and JAR contents of a bundle
  • wrap a JAR so that it becomes a bundle πŸŽ€
  • create a Bundle from a specification and a class path
  • verify the validity of the manifest entries (the vibe check, basically)

πŸ‘‘ GENERAL OPTIONS πŸ‘‘

these are the ones you drop before the command, bestie. main character energy.

  • --failok β€” same as the property --failok. the current run will create a JAR file even if there were errors. yes, even then. it's giving "we ball" 😭
  • --exceptions β€” will print the exception when the software has ran into a bad exception and bails out. normally only a message is printed. for debugging or diagnostic reasons, the exception stack trace can be very helpful β€” and lowkey it's the receipts you need πŸ”₯
  • -f, --full β€” do full
  • -p, --project <string> β€” identify another project
  • -t, --test β€” build for test
  • -o, --output <string> β€” specify the output file path. the default is output.jar in the current directory 🫢

🌈 COMMANDS 🌈

available commands, and there are so many, bestie. here's the full roster, no gatekeeping:

  • action β€” execute an action on a repo, or if no name is give, list the actions
  • add β€” add a workspace, or a project or a plugin to the workspace
  • baseline β€” compare a newer bundle to a baselined bundle and provide versioning advice
  • bash β€” generate autocompletion file for bash
  • bnd β€” the swiss army tool for OSGi
  • bootstrap β€” interactive gogo shell
  • bsn2url β€” from a set of bsns, create a list of urls if found in the repo
  • build β€” build a project. this will create the jars defined in the bnd.bnd and sub-builders.
  • buildx β€” build project, is deprecated but here for backward compatibility
  • bump β€” bumps the version of a project
  • changes β€” show the changes in this release of bnd
  • clean β€” clean a project
  • compile β€” compile a project or the workspace
  • convert β€” converter to different formats
  • copy β€” (no description given, it's just mysterious like that πŸ™ˆ)
  • create β€” create jar, used to support backward compatible java jar commands
  • debug β€” show a lot of info about the project you're in
  • defaults β€” (no description given, staying enigmatic πŸ’€)
  • deliverables β€” show all deliverables from this workspace, with their current version and path.
  • diff β€” diff jars
  • digest β€” digests a number of files
  • do β€” execute a file based on its extension. supported extensions are: bnd (build), bndrun (run), and jar (print)
  • eclipse β€” show info about the current directory's eclipse project
  • ees β€” show the Execution Environments of a JAR
  • enroute β€” OSGi enRoute commands to maintain bnd workspaces (create workspace, add project, etc)
  • export β€” (no description given, classic πŸ™ˆ)
  • extract β€” extract files from a JAR file, equivalent jar command x[vf] (syntax supported)
  • find β€” go through the exports and/or imports and match the given exports/imports globs. if they match, print the file, package and version.
  • flatten β€” flatten a bundle by expanding all entries on the Bundle-ClassPath
  • grep β€” grep the manifest of bundles/jar files.
  • info β€” show key project variables
  • junit β€” test a project with plain JUnit
  • macro β€” show macro value
  • maven β€” Maven bundle command
  • nexus β€” (no description given, so mysterious πŸ’…)
  • package β€” package a bnd or bndrun file into a single jar that executes with java -jar <>.jar
  • plugins β€” (no description given ✨)
  • print β€” printout the JAR
  • profile β€” profile management. a profile is a JAR that only contains packages and capabilities
  • project β€” execute a Project action, or if no parms given, show information about the project
  • release β€” release this project
  • remote β€” (no description given πŸŽ€)
  • remove β€” remove a project or a plugin from the workspace
  • repo β€” manage the repositories
  • resolve β€” (no description given, it's got secrets πŸ”₯)
  • run β€” run a project in the OSGi launcher
  • runtests β€” run OSGi tests and create report
  • schema β€” highly specialized function to create an overview of package deltas in ees
  • select β€” helps finding information in a set of JARs by filtering on manifest data and printing out selected information.
  • settings β€” set bnd/jpm global variables
  • source β€” merge a binary jar with its sources. it is possible to specify source path
  • sync β€” execute a Project action, or if no parms given, show information about the project
  • syntax β€” access the internal bnd database of keywords and options
  • test β€” test a project according to an OSGi test
  • type β€” list files int a JAR file, equivalent jar command t[vf] (syntax supported)
  • verify β€” verify jars
  • version β€” show version information about bnd
  • view β€” view a resource from a JAR file.
  • wrap β€” wrap a jar
  • xref β€” show a cross references for all classes in a set of jars.
some of these genuinely do not have descriptions in the source. that's not me being lazy, that's just canon bestie 🫢

πŸ¦‹ SEE ALSO πŸ¦‹


and that's the whole page, bestie!! πŸŽ€ you ate this. go forth and bundle responsibly βœ¨πŸ’–

this was bnd-5.1.2, dated 2026-05-15, from BND for Debian GNU/Linux. periodt. πŸ’…πŸŒˆπŸ¦‹
πŸ“¦ where this page comes from