Imagine a situation where you suddenly need to obtain the bytecode of all the loaded classes in a the Java process. For example let’s say you want to debug some sort of instrumentation that happens at runtime and you can’t locate the .class file and inspect that.
Alternatively, let’s say you’re doing something along the lines of JITWatch and want to link together the bytecode you produce with the machine code the JIT generates. In any case, you have a problem which involves classes and as we know all too well, problems with classes and classloaders are gonna get interesting and you’re gonna need coffee.
In this post we’ll look at two approaches to obtaining the bytecode of classes loaded into the JVM and learn a thing or two about javaagents and the HotSpot Debugger, a hidden gem of the JDK.
So let’s outline the problem that we’re tackling in this post.
Problem Description: Obtain the bytecode of all classes loaded into the JVM.
Let’s get started…
In this post we analyze the main problems you face when debugging code that runs in production. Let’s get started with a fair warning that our made up legal department forced us to put here.
WARNING: The following post contains explicit descriptions of bugs in production systems that some developers may find disturbing.
In this teaser blog post, we’ll take you through some of the answers we have received so far in our Java Performance survey, which incidentally is still running so please take the survey before we do our full analysis of the data. Use the button below to take you directly to the survey (Oh and by the way, we’re still donating 50c for every completed survey to Dogs for the Disabled, so you can feel great while filling it in).TAKE THE SURVEY!
Hi, I’m Jeremy Prime, an independent software consultant based in the UK. My primary professional interests revolve around software development on the JVM, and hence most of my development projects are Java-based. I first used JRebel (in its trial version) on a Spring/JavaEE project I worked on in 2013, and was pretty much instantly addicted to the reliable hot class reloading, sufficiently so that it took just days before I shouted “TAKE MY MONEY” to ZeroTurnaround to buy a full licence. I’ve had a strong interest in the non-blocking application platform Vert.x (http://vertx.io) since I first heard of it back in 2012, and late in 2014 I was asked to join a project using Vert.x (at that time version 2) as one of its core technologies. So in my idealized world for this project, I’d want to keep my Vert.x application running while making code changes and recompiling.
Yesterday, the Virtual JUG hosted its second session with Josh Long. This time it was all about building microservices using Spring Boot for development and deploying them to Spring Cloud. Josh is a Spring Developer Advocate at Pivotal, an author of multiple books on real life Spring and a frequent traveller to myriads of Java conferences and meetups around the world. As mentioned, this is the second time, Josh was joining Virtual JUG to deliver a session and as always it was a really great talk.
In this post I’ll try to shed some light what performance improvements changes are coming with Eclipse Mars and explain why and how should it impact your everyday development life.
Recently, the Virtual JUG has the pleasure of hosting Markus Eisele, Red Hat Developer Advocate, JBoss Middleware expert and a famous consultant, conference speaker and book author on topics like Java EE, software architecture and large projects. Having dealt with enterprise applications for over 14 years, Markus has the knowledge of the problem base, the experience to validate that knowledge and the passion to share it with us in the session. It was an extremely interesting talk and you you certainly should take some time to experience it.
I am pretty sure that as developers, we are all in love with technical documentation. We love reading docs, writing them, and don’t even start me on talking about maintaining docs: absolutely love it!
In this post, I’m going to list some reasons for maintaining up to date and correct documentation, provide tips on writing better Javadocs and explain how to use various Javadoc tags to the best.
Software development is all about shipping code. Building applications and making them available is the core activity that supports our whole industry, community and ecosystem. The latest Virtual JUG session with the excellent Bert Ertman was focused on exactly that. In this post I’ll recap the most important points that were presented on the talk “Building Modular Java Applications in the Cloud”.