{"id":13760812,"url":"https://github.com/thegreystone/jmc-tutorial","last_synced_at":"2026-03-07T22:32:34.548Z","repository":{"id":38403220,"uuid":"155293858","full_name":"thegreystone/jmc-tutorial","owner":"thegreystone","description":"A hands-on-lab/tutorial for learning JDK Mission Control 7+.","archived":false,"fork":false,"pushed_at":"2022-04-21T15:50:40.000Z","size":67471,"stargazers_count":217,"open_issues_count":2,"forks_count":32,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-08T20:27:43.393Z","etag":null,"topics":["hacktoberfest","hacktoberfest2021"],"latest_commit_sha":null,"homepage":"http://jdk.java.net/jmc/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thegreystone.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}},"created_at":"2018-10-29T23:15:50.000Z","updated_at":"2025-05-02T23:19:02.000Z","dependencies_parsed_at":"2022-08-09T03:16:38.828Z","dependency_job_id":null,"html_url":"https://github.com/thegreystone/jmc-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thegreystone/jmc-tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegreystone%2Fjmc-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegreystone%2Fjmc-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegreystone%2Fjmc-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegreystone%2Fjmc-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thegreystone","download_url":"https://codeload.github.com/thegreystone/jmc-tutorial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegreystone%2Fjmc-tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30234629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["hacktoberfest","hacktoberfest2021"],"created_at":"2024-08-03T13:01:22.657Z","updated_at":"2026-03-07T22:32:34.520Z","avatar_url":"https://github.com/thegreystone.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# JDK Mission Control Tutorial\n\nThis tutorial provides plenty of examples and material to help you learn JDK Mission Control (7+).\n\n## Preparations\nSince it is not practical to pre-package everything required to run the material here at GitHub, there are some preparations required before starting the Tutorial.\n\n### Setting up the JDK\nYou will need to have a JDK 11 or later to do this tutorial. You can either use the [Oracle JDK](http://java.oracle.com) or any OpenJDK build, for example the one provided by [Oracle](http://jdk.java.net/11/).\n\nYou will need to ensure that `java` for your JDK is on your path, and you should also make sure that your JAVA_HOME variable is set to the parent folder of the `bin` folder containing your `java` binary.\n\n### Getting the stand alone version of JMC\nThere are various binary builds of JMC available. \nSee the JMC github repo for alternatives (any will do):\nhttps://github.com/openjdk/jmc#readme\n\n### Setting up Eclipse\nThe tutorial will be easier to run if you have an Eclipse installed. You will need an Eclipse Oxygen 4.8.0 or later. You will also need to add some VM arguments.\n\nFor example:\n\n```ini\n-vmargs\n-Djdk.attach.allowAttachSelf=true\n--add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED\n--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED\n--add-exports=java.management/sun.management=ALL-UNNAMED\n--add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED\n--add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED\n--add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED\n--add-opens=java.base/java.net=ALL-UNNAMED\n--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED\n```\n\nDepending on your platform you will also need to add one final export.\n\nIf running on Windows, also add:\n\n```ini\n--add-exports=java.desktop/sun.awt.windows=ALL-UNNAMED\n```\n\nIf running on Mac OS, also add:\n\n```ini\n--add-exports=java.desktop/sun.lwawt.macosx=ALL-UNNAMED\n```\n\nIf running on Linux, also add:\n\n```ini\n--add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED\n```\n\nYou may also want to ensure that your newly setup JDK is being used for running Eclipse. This can be enforced by using the -vm option in the eclipse.ini file. Don't forget that the -vmargs option must be last in the file. For example:\n\n```ini\n-vm\n/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin\n-vmargs\n-Djdk.attach.allowAttachSelf=true\n...\n```\n\n#### Adding the Eclipse plug-ins\n\nNext you will want to add the JMC plug-ins. You can either get the update site pre-built from AdoptOpenJDK (https://adoptopenjdk.net/jmc), or build it yourself. Install git (if you don't already have it) and run the following command in the folder you wish to clone the JMC source:\n\n```bash\ngit clone https://github.com/openjdk/jmc\n```\n\nFollow the instructions in the README.md found in the root of the JMC repository on how to create and access the update sites for Eclipse.\n\n#### Importing the projects\nTo import the projects into Eclipse, create a new Workspace and simply import all the projects available in the projects folder.\n\n## Running the Tutorial\nThe [tutorial instructions](https://github.com/thegreystone/jmc-tutorial/tree/master/docs) explain in detail how to run the JMC labs. If running the labs from within Eclipse, first ensure that you have set up an Eclipse properly, added the plug-in version of JMC, and imported the projects.\n\n## About\nThis tutorial is for learning how to use JDK Mission Contol. It is provided under GPLv3 as is. If you find a problem, please open a ticket or feel free to provide a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthegreystone%2Fjmc-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthegreystone%2Fjmc-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthegreystone%2Fjmc-tutorial/lists"}