{"id":19015313,"url":"https://github.com/hansolo/javafinder","last_synced_at":"2025-04-23T01:44:33.508Z","repository":{"id":165463659,"uuid":"640810935","full_name":"HanSolo/javafinder","owner":"HanSolo","description":"JavaFinder is a little tool that helps you finding all installed Java versions in a given path","archived":false,"fork":false,"pushed_at":"2024-03-04T19:46:18.000Z","size":223,"stargazers_count":21,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-17T18:23:05.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HanSolo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-15T07:16:55.000Z","updated_at":"2025-03-06T06:18:37.000Z","dependencies_parsed_at":"2024-11-08T19:50:05.193Z","dependency_job_id":null,"html_url":"https://github.com/HanSolo/javafinder","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HanSolo%2Fjavafinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HanSolo%2Fjavafinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HanSolo%2Fjavafinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HanSolo%2Fjavafinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HanSolo","download_url":"https://codeload.github.com/HanSolo/javafinder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250354292,"owners_count":21416749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T19:36:43.444Z","updated_at":"2025-04-23T01:44:33.487Z","avatar_url":"https://github.com/HanSolo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## JavaFinder\n\nJavaFinder is a little command line tool to find (hopefully) all Java installations in a given path (incl. subfolders).\nThis can be useful if you need to figure out what kind of distributions you have installed on your machine.\nIt should find builds of OpenJDK and GraalVM including the following distributions:\n- AdoptOpenJDK\n- AdoptOpenJDK J9\n- Bi Sheng\n- Corretto\n- Debian\n- Dragonwell\n- Gluon GraalVM\n- GraalVM CE\n- GraalVM EE\n- GraalVM Community\n- GraalVM\n- JetBrains\n- Kona\n- Liberica\n- Liberica Native\n- Mandrel\n- Microsoft\n- OJDK Build\n- Open Logic\n- Oracle\n- Oracle OpenJDK\n- RedHat\n- SAP Machine\n- Semeru\n- Semeru Certified\n- Temurin\n- Trava\n- Ubuntu\n- Zulu\n- Zulu Prime\n\n### Download the binaries\nYou can download the latest binaries [here](https://github.com/HanSolo/javafinder/releases).\n\n\n### Requirements to build the binary yourself\n- A build of OpenJDK 21 (org greater than 21)\n- GraalVM CE (to build the native image)\n\n### Build jar file\nExecute the following command in the project folder\n\n```./gradlew clean build```\n\nYou will find the jar file in the ```build/lib``` folder:\n- ```javafinder-21.0.0.jar```\n\n\u003cbr\u003e\n\n### Build native image\nTo build a native image, make sure you have GraalVM installed with the native-image option\n\n#### Shell\n```native-image -cp classes:build/libs/javafinder-21.0.0.jar --initialize-at-build-time=Constants -H:Name=javafinder eu.hansolo.javafinder.Main --no-fallback```\n\n\u003cbr\u003e\n\n### Parameters\nWhen called without any parameter ```javafinder```, it will scan the following predefined paths:\n- Windows: C:\\Program Files\\Java\\\n- Linux  : /usr/lib/jvm\n- MacOS  : /System/Volumes/Data/Library/Java/JavaVirtualMachines/\n\n#### -h\nWill show some info ```javafinder -h```\n\n#### -v\nWill show the version number ```javafinder -v```\n\n### csv\nWill output the result in csv format ```javafinder csv /PATH```\n\n### json\nWill output the result in json beautified format ```javafinder json /PATH```\n\n### Not specified\nIf you don't specify an output format it will use json (not beautified)  ```javafinder /PATH```\n\n\u003cbr\u003e\n\n### Usage\nFind all JDK distributions on MacOS in the path ```/System/Volumes/Data/Library/Java/JavaVirtualMachines```\nand print in non beautified json format to the console:\n\nShell: ```./javafinder /System/Volumes/Data/Library/Java/JavaVirtualMachines```\n\n\u003cbr\u003e\n\nFind all JDK distributions on Windows in the path ```c:\\``` and print in csv format to the console:\n\nShell: ```javafinder csv c:\\```\n\n\u003cbr\u003e\n\n#### Result:\nThe json output also contains information about the current system\n\nOutput all distributions found in \u003cb\u003enon beautified\u003c/b\u003e json format\n```./javafinder /System/Volumes/Data/Library/Java/JavaVirtualMachines```\n\n```json\n{\"timestamp\":1685524843,\"search_path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/\",\"sysinfo\":{\"operating_system\":\"Mac OS\",\"architecture\":\"ARM64\",\"bit\":\"64 Bit\",\"hostname\":\"MY_HOST\"},\"distributions\":[{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"20.0.1\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-20.jdk/zulu-20.jdk/Contents/Home/\",\"build_scope\":\"OpenJDK\",\"in_use\":false,\"used_by\":[]},{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"17.0.7\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-17.jdk/zulu-17.jdk/Contents/Home/\",\"build_scope\":\"OpenJDK\",\"in_use\":true,\"used_by\":[\"/Library/Java/JavaVirtualMachines/zulu-17.jdk/zulu-17.jdk/Contents/Home/bin/java -XX:MaxHeapSize=32g --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2048M -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=en -Duser.variant -cp /Users/hansolo/.gradle/wrapper/dists/gradle-8.0.2-bin/25jlreiuz6u3xu2phlpa2vv4m/gradle-8.0.2/lib/gradle-launcher-8.0.2.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.0.2\",]},{\"vendor\":\"Oracle\",\"name\":\"Graal VM CE\",\"version\":\"22.3.1\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home/\",\"build_scope\":\"GraalVM\",\"in_use\":true,\"used_by\":[\"/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home/bin/java -XX:MaxHeapSize=32g --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2048M -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=en -Duser.variant -cp /Users/hansolo/.gradle/wrapper/dists/gradle-8.0.2-bin/25jlreiuz6u3xu2phlpa2vv4m/gradle-8.0.2/lib/gradle-launcher-8.0.2.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.0.2\",]},{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"8.0.372+7\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/jre/\",\"build_scope\":\"OpenJDK\",\"in_use\":false,\"used_by\":[]},{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"11.0.19\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-11.jdk/zulu-11.jdk/Contents/Home/\",\"build_scope\":\"OpenJDK\",\"in_use\":false,\"used_by\":[]},{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"21-ea+22\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-21.jdk/zulu-21.jdk/Contents/Home/\",\"build_scope\":\"OpenJDK\",\"in_use\":false,\"used_by\":[]},{\"vendor\":\"Azul\",\"name\":\"Zulu\",\"version\":\"8.0.372+7\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/\",\"build_scope\":\"OpenJDK\",\"in_use\":false,\"used_by\":[]},{\"vendor\":\"Gluon\",\"name\":\"Gluon GraalVM\",\"version\":\"22.1.0.1\",\"timestamp\":1685524843,\"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/gluon-graalvm/Contents/Home/\",\"build_scope\":\"GraalVM\",\"in_use\":false,\"used_by\":[]}]}\n```\n\nOutput all distributions found in \u003cb\u003ebeautified\u003c/b\u003e json format\n```./javafinder json /System/Volumes/Data/Library/Java/JavaVirtualMachines```\n\n```json\n{\n  \"timestamp\":1685524802,\n  \"search_path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/\",\n  \"sysinfo\":{\n    \"operating_system\":\"Mac OS\",\n    \"architecture\":\"ARM64\",\n    \"bit\":\"64 Bit\",\n    \"hostname\":\"MY_HOST\"\n  },\n  \"distributions\":[\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"17.0.7\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-17.jdk/zulu-17.jdk/Contents/Home/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":true,\n      \"used_by\":[\n        \"/Library/Java/JavaVirtualMachines/zulu-17.jdk/zulu-17.jdk/Contents/Home/bin/java -XX:MaxHeapSize=32g --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2048M -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=en -Duser.variant -cp /Users/hansolo/.gradle/wrapper/dists/gradle-8.0.2-bin/25jlreiuz6u3xu2phlpa2vv4m/gradle-8.0.2/lib/gradle-launcher-8.0.2.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.0.2\"      ]\n    },\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"8.0.372+7\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    },\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"20.0.1\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-20.jdk/zulu-20.jdk/Contents/Home/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    },\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"8.0.372+7\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/jre/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    },\n    {\n      \"vendor\":\"Gluon\",\n      \"name\":\"Gluon GraalVM\",\n      \"version\":\"22.1.0.1\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/gluon-graalvm/Contents/Home/\",\n      \"build_scope\":\"GraalVM\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    },\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"11.0.19\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-11.jdk/zulu-11.jdk/Contents/Home/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    },\n    {\n      \"vendor\":\"Oracle\",\n      \"name\":\"Graal VM CE\",\n      \"version\":\"22.3.1\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home/\",\n      \"build_scope\":\"GraalVM\",\n      \"in_use\":true,\n      \"used_by\":[\n        \"/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home/bin/java -XX:MaxHeapSize=32g --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2048M -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=en -Duser.variant -cp /Users/hansolo/.gradle/wrapper/dists/gradle-8.0.2-bin/25jlreiuz6u3xu2phlpa2vv4m/gradle-8.0.2/lib/gradle-launcher-8.0.2.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.0.2\"      ]\n    },\n    {\n      \"vendor\":\"Azul\",\n      \"name\":\"Zulu\",\n      \"version\":\"21-ea+22\",\n      \"timestamp\":1685524802,\n      \"path\":\"/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-21.jdk/zulu-21.jdk/Contents/Home/\",\n      \"build_scope\":\"OpenJDK\",\n      \"in_use\":false,\n      \"used_by\":[\n      ]\n    }\n  ]\n}\n\n\n```\n\n\u003cbr\u003e\nThe csv output only contains the distributions found\n\nOutput all distributions found in csv format\n```./javafinder csv /System/Volumes/Data/Library/Java/JavaVirtualMachines```\n\n```\nVendor,Distribution,Version,Timestamp,Path,Type,InUse,Timestamp\nGluon,Gluon GraalVM,22.1.0.1,2023-05-31T09:19:28.069171Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/gluon-graalvm/Contents/Home/,GraalVM,false,1685524768\nAzul,Zulu,8.0.372+7,2023-05-31T09:19:28.080253Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/jre/,OpenJDK,false,1685524768\nAzul,Zulu,17.0.7,2023-05-31T09:19:28.075692Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-17.jdk/zulu-17.jdk/Contents/Home/,OpenJDK,true,1685524768\nAzul,Zulu,20.0.1,2023-05-31T09:19:28.077076Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-20.jdk/zulu-20.jdk/Contents/Home/,OpenJDK,false,1685524768\nAzul,Zulu,11.0.19,2023-05-31T09:19:28.072419Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-11.jdk/zulu-11.jdk/Contents/Home/,OpenJDK,false,1685524768\nAzul,Zulu,21-ea+22,2023-05-31T09:19:28.078641Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-21.jdk/zulu-21.jdk/Contents/Home/,OpenJDK,false,1685524768\nAzul,Zulu,8.0.372+7,2023-05-31T09:19:28.081645Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/zulu-8.jdk/zulu-8.jdk/Contents/Home/,OpenJDK,false,1685524768\nOracle,Graal VM CE,22.3.1,2023-05-31T09:19:28.074189Z,/System/Volumes/Data/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home/,GraalVM,true,1685524768\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhansolo%2Fjavafinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhansolo%2Fjavafinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhansolo%2Fjavafinder/lists"}