diff --git a/lib/licenses.nix b/lib/licenses.nix
index 873056d2fa5e..cea0b410f39e 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -204,6 +204,11 @@ in mkLicense lset) ({
     free = false;
   };
 
+  caossl = {
+    fullName = "Computer Associates Open Source Licence Version 1.0";
+    url = "http://jxplorer.org/licence.html";
+  };
+
   cal10 = {
     fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)";
     url = "https://opensource.org/licenses/CAL-1.0";
diff --git a/pkgs/applications/networking/jxplorer/default.nix b/pkgs/applications/networking/jxplorer/default.nix
new file mode 100644
index 000000000000..7f1a46b37dab
--- /dev/null
+++ b/pkgs/applications/networking/jxplorer/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, makeDesktopItem, ant, jdk8, copyDesktopItems, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "jxplorer";
+  version = "3.3.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/pegacat/jxplorer/releases/download/v${version}/jxplorer-${version}-project.tar.bz2";
+    hash = "sha256-/lWkavH51OqNFSLpgT+4WcQcfW3WvnnOkB03jB7bE/s=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "JXplorer";
+      exec = "jxplorer";
+      comment = "A Java Ldap Browser";
+      desktopName = "JXplorer";
+      genericName = "Java Ldap Browser";
+      icon = "jxplorer";
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -d "$out/opt/jxplorer" "$out/bin" "$out/share/pixmaps"
+    cp -r ./. "$out/opt/jxplorer"
+    install -Dm644 images/JX128.png "$out/share/pixmaps/jxplorer.png"
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    chmod +x $out/opt/jxplorer/jxplorer.sh
+    makeWrapper $out/opt/jxplorer/jxplorer.sh $out/bin/jxplorer \
+      --chdir $out/opt/jxplorer \
+      --set JAVA_HOME ${jdk8}
+  '';
+
+  meta = with lib; {
+    description = "A Java Ldap Browser";
+    homepage    = "https://sourceforge.net/projects/jxplorer/";
+    license     = lib.licenses.caossl;
+    maintainers = with maintainers; [ benwbooth ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0eb01b40cb0e..a8dd8e3e055e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -29252,6 +29252,8 @@ with pkgs;
 
   jnetmap = callPackage ../applications/networking/jnetmap { };
 
+  jxplorer  = callPackage ../applications/networking/jxplorer {};
+
   join-desktop = callPackage ../applications/misc/join-desktop { };
 
   json-plot = callPackage ../applications/graphics/json-plot { };