diff --git a/dev-java/jcommander/Manifest b/dev-java/jcommander/Manifest
new file mode 100644
index 000000000..2103cf6f0
--- /dev/null
+++ b/dev-java/jcommander/Manifest
@@ -0,0 +1 @@
+DIST jcommander-1.32.tar.gz 61837 BLAKE2B 7a233c54a8619463402f84a40969a713bed052ac073b3413f444c16c1438e51748a8d5072a3fd96a396428571e2f01e981a12218251dc9588e31113dd7a6ee9e SHA512 dd23674e5ca91f770ec677579f3c2eb16cbf4f82154f9d1a728debeaef75f0e00e50d58336e7b05b63f601188380d62075df0889b2df8e1fffe48c472cfa5df0
diff --git a/dev-java/jcommander/jcommander-1.32.ebuild b/dev-java/jcommander/jcommander-1.32.ebuild
new file mode 100644
index 000000000..9e8acac14
--- /dev/null
+++ b/dev-java/jcommander/jcommander-1.32.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="testng"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Command line parsing framework for Java"
+HOMEPAGE="https://github.com/cbeust/jcommander"
+SRC_URI="https://github.com/cbeust/jcommander/archive/refs/tags/jcommander-1.32.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ppc64 x86"
+
+DEPEND="
+ >=virtual/jdk-11:*
+ test? ( dev-java/jackson-annotations:2 )
+"
+RDEPEND="
+ >=virtual/jre-11:*
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+JAVA_SRC_DIR="src/main/java"
+
+# ===============================================
+# Command line suite
+# Total tests run: 258, Failures: 3, Skips: 0
+# ===============================================
+#
+# * ERROR: dev-java/jcommander-1.82::gentoo failed (test phase):
+# * Running TestNG failed.
+
+# https://bugs.gentoo.org/801694
+# Needs "java-util-2-runner-args.patch" from https://github.com/gentoo/gentoo/pull/21319#issuecomment-878128343
+JAVA_TEST_RUNNER_EXTRA_ARGS=( -verbose 3 -usedefaultlisteners true )
+
+JAVA_TEST_GENTOO_CLASSPATH="jackson-annotations-2,testng"
+JAVA_TEST_EXTRA_ARGS=( -Djava.io.tmpdir="${T}" )
+JAVA_TEST_SRC_DIR=( src/test/java )
+JAVA_TEST_RESOURCE_DIRS=( src/test/resources )
+
+src_prepare() {
+ default
+ java-pkg_clean
+}
+
+src_test() {
+ # because module java.base does not export sun.reflect.annotation to unnamed module @0x42bb2aee
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/sun.reflect.annotation=ALL-UNNAMED )
+ fi
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/jcommander/metadata.xml b/dev-java/jcommander/metadata.xml
new file mode 100644
index 000000000..d6b13b44f
--- /dev/null
+++ b/dev-java/jcommander/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ java@gentoo.org
+ Java
+
+
+ cbeust/jcommander
+
+
diff --git a/dev-java/jd-lib/Manifest b/dev-java/jd-lib/Manifest
index 2e31f4bc4..40aaad683 100644
--- a/dev-java/jd-lib/Manifest
+++ b/dev-java/jd-lib/Manifest
@@ -1 +1,2 @@
DIST jd-cmd-1.1.0.tar.gz 34915 BLAKE2B b8b1876b060adb7101bb60f919bac70f0854bbe8114e3b30b2a4e66e44e04b88fb1a5967f0ff7c417f0caaa73d327246ae5cefc9f51c33fac826370c7f783b81 SHA512 3ad3850f92edc4796e9dd28e5ee10c8554e826ba64efb2c08f094a2aa4d2fa27142a0572fbfcc4215236a38ccbb6661ea9cbef65f9f598ca180a1011d03bf471
+DIST jd-lib-1.2.1.tar.gz 38400 BLAKE2B 1ac5f02a4b9bab6a49225b8b190d96049196d5c63e01a2ce555cc3836d4da4505266b8b69108f813e689dddb832c51d52ce02bd90ee4259719da5a9a479d2f88 SHA512 718fa40ae96f4503b1dabe3dc7c98efe0dd1d5bb23d2a5d707bd37cd07d1e4b6c8589cf194c06d7af234e68546ac4f9493c096e5b18fa572120f55c601d8fa68
diff --git a/dev-java/jd-lib/jd-lib-1.2.1.ebuild b/dev-java/jd-lib/jd-lib-1.2.1.ebuild
new file mode 100644
index 000000000..de5a93d44
--- /dev/null
+++ b/dev-java/jd-lib/jd-lib-1.2.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Command line Java Decompiler"
+HOMEPAGE="https://github.com/kwart/jd-cli"
+SRC_URI="https://github.com/kwart/jd-cli/archive/refs/tags/jd-cli-${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE=""
+
+CDEPEND="dev-java/jcommander:0
+ dev-java/slf4j-api:0
+ dev-java/logback-core:0
+
+ dev-java/jd-core:0
+ "
+
+RDEPEND="${CDEPEND}
+ virtual/jre:11"
+DEPEND="${CDEPEND}
+ virtual/jdk:11"
+
+S="${WORKDIR}/jd-cli-jd-cli-${PV}"
+
+JAVA_GENTOO_CLASSPATH="jcommander,slf4j-api,logback-core,jd-core"
+
+#JAVA_SRC_DIR="jd-cli/src/main/java/com/github/kwart/jd/cli"
+#JAVA_LAUNCHER_FILENAME=${PN}
+#JAVA_MAIN_CLASS="com.github.kwart.jd.cli.Main"
+
+JAVA_SRC_DIR="jd-lib/src/main/java/com/github/kwart/jd"
diff --git a/dev-java/jd-lib/jd-lib-1.2.1.ebuild.old b/dev-java/jd-lib/jd-lib-1.2.1.ebuild.old
new file mode 100644
index 000000000..165d671e0
--- /dev/null
+++ b/dev-java/jd-lib/jd-lib-1.2.1.ebuild.old
@@ -0,0 +1,30 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Command line Java Decompiler"
+HOMEPAGE="https://github.com/kwart/jd-cmd/"
+SRC_URI="https://github.com/kwart/jd-cli/archive/refs/tags/jd-cli-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="virtual/jre:11"
+DEPEND="${RDEPEND}
+ dev-java/jcommander
+ dev-java/slf4j-api
+ dev-java/hamcrest-core:1.3
+ dev-java/junit:4
+ dev-java/jd-core
+ virtual/jdk:11"
+
+S="${WORKDIR}/${PN}-${P}"
+
+JAVA_GENTOO_CLASSPATH="jcommander,slf4j-api,hamcrest-core-1.3,junit-4,jd-core"
+
+JAVA_SRC_DIR="jd-lib/src/main/java/com/github/kwart/jd"
diff --git a/dev-java/logback/logback-1.2.11.ebuild b/dev-java/logback/logback-1.2.11.ebuild
new file mode 100644
index 000000000..21d964afb
--- /dev/null
+++ b/dev-java/logback/logback-1.2.11.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="The reliable, generic, fast and flexible logging framework"
+HOMEPAGE="https://github.com/qos-ch/logback"
+SRC_URI="https://github.com/qos-ch/logback/archive/v_${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+#WIP
+#KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="virtual/jre:11"
+DEPEND="${RDEPEND}
+ dev-java/slf4j-api
+ dev-java/assertj-core
+ dev-java/junit:4
+ dev-java/osgi-core-api
+ virtual/jdk:11
+ dev-java/mockito
+ dev-java/joda-time
+ java-virtuals/servlet-api:3.1
+ dev-java/jansi
+ dev-java/jetty-server
+ "
+
+# dev-java/oracle-javamail
+
+#JAVA_GENTOO_CLASSPATH="slf4j-api,junit-4,osgi-core-api,joda-time,mockito,jansi-native,janino,servlet-api-3.1,oracle-javamail,jetty-server"
+JAVA_GENTOO_CLASSPATH="slf4j-api,junit-4,osgi-core-api,joda-time,mockito,jansi-native,janino,servlet-api-3.1,jetty-server"
+
+src_prepare(){
+ rm -r ./logback-v_${PV}/logback-classic
+ rm -r ./logback-v_${PV}/logback-access/src/test/
+ eapply_user
+}
+
+#/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java:314: error: cannot find symbol
+# public void addLifeCycleListener(Listener listener) {
diff --git a/dev-java/reflections/Manifest b/dev-java/reflections/Manifest
new file mode 100644
index 000000000..1fdd79541
--- /dev/null
+++ b/dev-java/reflections/Manifest
@@ -0,0 +1 @@
+DIST reflections-0.9.12.tar.gz 48235 BLAKE2B c82bd69f4433d8db738fcd32dd7fbf643984917622853b1886e15b906a91579de0193daf0fc1a9642c12d13de8236acf3e1f1409a18713b37c6e705a3cae34bd SHA512 8f8c7603ab73b599c6e2160f42b61c4e0eedef9981c06124bba0437d6636e7bf8a916784e266754562dc17f4d3ccf8df6c9ba707d1a7c38d97dc5eea9138064f
diff --git a/dev-java/reflections/metadata.xml b/dev-java/reflections/metadata.xml
new file mode 100644
index 000000000..7b4f13b0e
--- /dev/null
+++ b/dev-java/reflections/metadata.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ java@gentoo.org
+ Java
+
+ Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project.
+
+ ronmamo/reflections
+
+
diff --git a/dev-java/reflections/reflections-0.9.12-r3.ebuild b/dev-java/reflections/reflections-0.9.12-r3.ebuild
new file mode 100644
index 000000000..d4d72f7af
--- /dev/null
+++ b/dev-java/reflections/reflections-0.9.12-r3.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://github.com/ronmamo/reflections/archive/0.9.12.tar.gz --slot 0 --keywords "~amd64 ~arm ~arm64 ~ppc64 ~x86" --ebuild reflections-0.9.12.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.reflections:reflections:0.9.12"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Reflections - a Java runtime metadata analysis"
+HOMEPAGE="https://github.com/ronmamo/reflections"
+SRC_URI="https://github.com/ronmamo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="WTFPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ppc64 x86"
+
+# Common dependencies
+# POM: pom.xml
+# com.google.code.gson:gson:2.8.6 -> >=dev-java/gson-2.8.8:2.6
+# org.dom4j:dom4j:2.1.1 -> >=dev-java/dom4j-2.1.3:1
+# org.javassist:javassist:3.26.0-GA -> !!!suitable-mavenVersion-not-found!!!
+# org.slf4j:slf4j-api:1.7.30 -> >=dev-java/slf4j-api-1.7.30:0
+# org.slf4j:slf4j-simple:1.7.24 -> >=dev-java/slf4j-simple-1.7.30:0
+
+CP_DEPEND="
+ dev-java/dom4j:1
+ dev-java/gson:2.6
+ dev-java/javassist:3
+ dev-java/slf4j-api:0
+ dev-java/slf4j-simple:0
+"
+
+# Compile dependencies
+# POM: pom.xml
+# javax.servlet:servlet-api:2.5 -> java-virtuals/servlet-api:2.5
+# POM: pom.xml
+# test? junit:junit:4.13 -> >=dev-java/junit-4.13.2:4
+
+DEPEND="
+ dev-java/tomcat-servlet-api:2.5
+ >=virtual/jdk-1.8:*
+ ${CP_DEPEND}
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}"
+
+S="${WORKDIR}/${P}"
+
+JAVA_CLASSPATH_EXTRA="tomcat-servlet-api-2.5"
+JAVA_SRC_DIR=( "src/main/java" )
+
+JAVA_TEST_GENTOO_CLASSPATH="junit-4"
+JAVA_TEST_SRC_DIR=( "src/test/java" )
+JAVA_TEST_RESOURCE_DIRS=( "src/test/resources" )
+JAVA_TEST_EXCLUDES=(
+ # Upstream does not run this test
+ "org.reflections.TestModel"
+ # 1) testMethodParameterNames(org.reflections.ReflectionsCollectTest)
+ # org.reflections.ReflectionsException: Scanner MethodParameterNamesScanner was not configured
+ # at org.reflections.Store.get(Store.java:39)
+ # at org.reflections.Store.get(Store.java:61)
+ # at org.reflections.Store.get(Store.java:46)
+ # at org.reflections.Reflections.getMethodParamNames(Reflections.java:579)
+ # at org.reflections.ReflectionsTest.testMethodParameterNames(ReflectionsTest.java:239)
+ org.reflections.ReflectionsCollectTest
+ # 2) testMethodParameterNames(org.reflections.ReflectionsParallelTest)
+ # org.reflections.ReflectionsException: Scanner MethodParameterNamesScanner was not configured
+ # at org.reflections.Store.get(Store.java:39)
+ # at org.reflections.Store.get(Store.java:61)
+ # at org.reflections.Store.get(Store.java:46)
+ # at org.reflections.Reflections.getMethodParamNames(Reflections.java:579)
+ # at org.reflections.ReflectionsTest.testMethodParameterNames(ReflectionsTest.java:239)
+ org.reflections.ReflectionsParallelTest
+ # 3) testMethodParameterNames(org.reflections.ReflectionsTest)
+ # org.reflections.ReflectionsException: Scanner MethodParameterNamesScanner was not configured
+ # at org.reflections.Store.get(Store.java:39)
+ # at org.reflections.Store.get(Store.java:61)
+ # at org.reflections.Store.get(Store.java:46)
+ # at org.reflections.Reflections.getMethodParamNames(Reflections.java:579)
+ # at org.reflections.ReflectionsTest.testMethodParameterNames(ReflectionsTest.java:239)
+ org.reflections.ReflectionsTest
+ #
+ # https://github.com/ronmamo/reflections/issues/277#issuecomment-927152981
+ # scanner was not configured exception - this is a known issue in 0.9.12, a simple workaround is to
+ # check if the getStore() contains index for the scanner before querying. next version 0.10 fixes this.
+)
+
+src_install() {
+ default # https://bugs.gentoo.org/789582
+ java-pkg-simple_src_install
+}
diff --git a/dev-util/jd-cli-bin/jd-cli-bin-1.2.1.ebuild b/dev-util/jd-cli-bin/jd-cli-bin-1.2.1.ebuild
index 72083d800..9e5f92975 100644
--- a/dev-util/jd-cli-bin/jd-cli-bin-1.2.1.ebuild
+++ b/dev-util/jd-cli-bin/jd-cli-bin-1.2.1.ebuild
@@ -13,7 +13,7 @@ SLOT="GPL-3"
KEYWORDS="amd64 x86"
IUSE=""
-DEPEND=""
+DEPEND="!dev-util/jd-cli"
RDEPEND="|| ( virtual/jre virtual/jdk )"
S="${WORKDIR}"
diff --git a/dev-util/jd-cli/Manifest b/dev-util/jd-cli/Manifest
index 349bad99b..06eb41746 100644
--- a/dev-util/jd-cli/Manifest
+++ b/dev-util/jd-cli/Manifest
@@ -1 +1,2 @@
DIST jd-cli-1.2.0.tar.gz 36558 BLAKE2B 4346a5b6d514850969762ca478e990699ae9c527fb7257c2d6974668908eb5ea0aee69429ab5e5a19eabe342507ac17b1a4716538880104f8594cea4471943d9 SHA512 f91a8c14058ce90d7b341c4fa2f304a7f851c1eefd31b4e1e7a74ba65910cf2c17b03e34be4ae0a3515cc0a9677c139da0fa26b1a338a19be26b6e9f8756919c
+DIST jd-cli-1.2.1.tar.gz 38400 BLAKE2B 1ac5f02a4b9bab6a49225b8b190d96049196d5c63e01a2ce555cc3836d4da4505266b8b69108f813e689dddb832c51d52ce02bd90ee4259719da5a9a479d2f88 SHA512 718fa40ae96f4503b1dabe3dc7c98efe0dd1d5bb23d2a5d707bd37cd07d1e4b6c8589cf194c06d7af234e68546ac4f9493c096e5b18fa572120f55c601d8fa68
diff --git a/dev-util/jd-cli/files/jd-cli b/dev-util/jd-cli/files/jd-cli
new file mode 100755
index 000000000..c17bfdaa1
--- /dev/null
+++ b/dev-util/jd-cli/files/jd-cli
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+DIRNAME=$(dirname "$(readlink -e "$0")")
+DIR=$(cd "$DIRNAME" || exit 112; pwd)
+
+[ "$OSTYPE" = "cygwin" ] \
+&& DIR="$( cygpath -m "$DIR" )"
+
+java -jar "$DIR/jd-cli.jar" $@
diff --git a/dev-util/jd-cli/jd-cli-1.2.1.ebuild b/dev-util/jd-cli/jd-cli-1.2.1.ebuild
new file mode 100644
index 000000000..1d89db617
--- /dev/null
+++ b/dev-util/jd-cli/jd-cli-1.2.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-2 java-pkg-simple java-utils-2
+
+DESCRIPTION="Command line Java Decompiler"
+HOMEPAGE="https://github.com/kwart/jd-cli"
+SRC_URI="https://github.com/kwart/jd-cli/archive/refs/tags/jd-cli-${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE=""
+
+#https://github.com/intoolswetrust/jd-cli/issues/81
+#<=dev-java/jcommander-1.32
+CDEPEND="!dev-util/jd-cli-bin
+ ~dev-java/jcommander-1.32
+ dev-java/slf4j-api:0
+ dev-java/logback-core:0
+ dev-java/logback-classic:0
+ dev-java/jd-lib:0
+ "
+
+RDEPEND="${CDEPEND}
+ virtual/jre:11"
+DEPEND="${CDEPEND}
+ virtual/jdk:11"
+
+S="${WORKDIR}/${PN}-${P}"
+
+JAVA_GENTOO_CLASSPATH="jcommander,slf4j-api,logback-core,logback-classic,jd-lib"
+
+JAVA_SRC_DIR="jd-cli/src/main/java/com/github/kwart/jd/cli"
+JAVA_LAUNCHER_FILENAME=${PN}
+JAVA_MAIN_CLASS="com.github.kwart.jd.cli.Main"
diff --git a/profiles/pentoo/base/package.mask b/profiles/pentoo/base/package.mask
index baffa073d..85e1a3b3a 100644
--- a/profiles/pentoo/base/package.mask
+++ b/profiles/pentoo/base/package.mask
@@ -149,3 +149,6 @@ dev-lang/lua:0
#okay so this still doesn't work and seems to be riddled with Internal Compiler Errors
=sys-devel/gcc-arm-none-eabi-11.2_p202202-r2
+
+#https://github.com/intoolswetrust/jd-cli/issues/81
+>dev-java/jcommander-1.32