Get inside your JVM

Overview

nudge4j · Build Status GitPitch License: MIT

nudge4j is a tiny piece of code to help great developers understand code better, debug less, have more fun.

Overview

With nudge4j you can:

  • control your Java application from the browser, as if the browser was a smarter remote control.
  • send code from the browser to run on the JVM,
  • experiment with live code.

To use nudge4j, just add less than 10 lines of code in your program.

nudge4j in action]

Issues

Report any issue using GitHub and use notifications to track progress on them.

Contributing

Want to hack on this project? Any kind of contribution is welcome! But I am particularly interested in Nashorn/JavaScript samples to add in the example section.

License

This project is licensed under the MIT license.

You might also like...

An Android library for member secretGFX group, This can be used to growing your apps and get more install via a simple banner view & native view and interstitial dialog.

An Android library for member secretGFX group, This can be used to growing your apps and get more install via a simple banner view & native view and interstitial dialog.

GFX-AdPromote An Android library for member secretGFX group, This can be used to growing your apps and get more install via a simple banner view & nat

Dec 25, 2022

Sparkling Water provides H2O functionality inside Spark cluster

Sparkling Water provides H2O functionality inside Spark cluster

Sparkling Water Sparkling Water integrates H2O's fast scalable machine learning engine with Spark. It provides: Utilities to publish Spark data struct

Jan 2, 2023

Expose eclipse features inside of vim.

Welcome to Eclim on GitHub Overview The primary goal of eclim is to bring Eclipse functionality to the Vim editor. For more details, please visit ecli

Nov 3, 2022

A minecraft mod that adds colored ping values inside each player's nametag.

A minecraft mod that adds colored ping values inside each player's nametag.

Ping Nametags (Fabric) A minecraft mod that adds colored ping values inside each player's nametag. Installation Stable Releases (recommended) The late

Nov 21, 2021

Introduction to CYS4-SensitiveDiscoverer, a Burp extension that discovers sensitive information inside HTTP messages.

CYS4-SensitiveDiscoverer Introduction Burp Suite is a useful tool used to do web application security testing. While Burp Suite provides a lot of func

Nov 16, 2022

Easy-to-use placeholder library to focus on replacement of regular expressions inside a text.

WPlaceholder Flexible library to replace placeholders inside messages/texts with Regex expressions. For what it's good for Placeholder replacement is

Oct 11, 2022

QuickShell is an Eclipse plugin to use Java JShell inside the Eclipse IDE.

QuickShell is an Eclipse plugin to use Java JShell inside the Eclipse IDE.

QuickShell is an Eclipse plugin to use Java JShell (REPL) inside Eclipse IDE. JDK 9+ is not installed on your system? No worries, you can still use Qu

Oct 3, 2022

A plugin to help you easily edit Swagger and OpenAPI specification files inside IntelliJ IDEA

A plugin to help you easily edit Swagger and OpenAPI specification files inside IntelliJ IDEA

Swagger Plugin Swagger Plugin makes it easy to edit Swagger and OpenAPI specification files inside IntelliJ IDEA. You can find it on JetBrains' plugin

Dec 15, 2022

Your Software. Your Structures. Your Rules.

jQAssistant Master Repository We splitted jQAssistant in multiple single repositories to be able to build a better and more flexible build an release

Dec 19, 2022

A project to cause (controlled) destruction on your jvm application

Perses Cause (controlled) destruction to your jvm application Perses (Ancient Greek: Πέρσης) was the Titan god of destruction. His name is derived fro

Dec 27, 2022

Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X

About Packages your JAR, assets and a JVM for distribution on Windows, Linux and macOS, adding a native executable file to make it appear like a nativ

Dec 24, 2022

Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X

About Packages your JAR, assets and a JVM for distribution on Windows, Linux and macOS, adding a native executable file to make it appear like a nativ

Jan 5, 2023

Get rid of the boilerplate code in properties based configuration.

OWNER OWNER, an API to ease Java property files usage. INTRODUCTION The goal of OWNER API is to minimize the code required to handle application confi

Dec 31, 2022

Get Method Sampling from Java Flight Recorder Dump and convert to FlameGraph compatible format.

Note: Travis has removed the support for Oracle JDK 8. Therefore the build status is removed temporarily. Converting JFR Method Profiling Samples to F

Dec 16, 2022

a little project that will help you get in jail

Heftgen [ˈhɛftçən] ausgesprochen: Heftchen Development Install this npm module globally (https://www.npmjs.com/package/git-conventional-commits) Enabl

Jun 26, 2021

Get notified with available vaccination centres via SMS

About A simple spring boot application that can track vaccine availability and automatically sends a SMS alert with the avilable centers Features Dose

Nov 16, 2022

Get device location by telephony (SIM card) or settings without using GPS tracker.

Get device location by telephony (SIM card) or settings without using GPS tracker.

react-native-device-country Get device location by telephony (SIM card) or settings without using GPS tracker Installation yarn add react-native-devic

Nov 29, 2022
Comments
  • "get all classes" doesen't work - gives FileNotFoundException

    I get The link points to http://localhost:5050/js?code=load(%27https%3A%2F%2Florenzoongithub.github.io%2Fnudge4j%2Ftwigs%2Fget.all.classes.js%27)%3BgetAllClasses(%7BskipJDK%3Afalse%7D)

    err::java.lang.RuntimeException: java.io.FileNotFoundException: https://lorenzoongithub.github.io/nudge4j/twigs/get.all.classes.js at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:397) at jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:117) at jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:238) at jdk.nashorn.internal.scripts.Script$17$^eval_.:program(:1)

    opened by nordfalk 2
  • obfuscated base64 code looks malicious

    obfuscated base64 code looks malicious

    Ciao Lorenzo! Thanks for sharing nudge4j which is a pretty cool idea! Me and my friends were discussing about the implication of the copy-pasting base64 code into an application as shown in https://lorenzoongithub.github.io/nudge4j. I found your gist showing (probably) the same code not encoded:

    /** nudge4j **/
    {
        int      nudge4j_port = 8080; /* http port for Nudge Server */
        Object[] nudge4j_args = {}; /* optional arguments here {} */
        try {
            java.net.URLClassLoader nudge4j_loader = new java.net.URLClassLoader(
                new java.net.URL[] { new java.net.URL("http://nudge4j.appspot.com/onthecloud/nudge4j.jar") });
            nudge4j_loader.loadClass("nudge4j.HttpServer").getMethod("start", int.class, Object[].class)
                .invoke(null, nudge4j_port, nudge4j_args);
            nudge4j_loader.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /** end nudge4j **/

    so essentially your code spawn the webserver and execute the content of the remot jar http://nudge4j.appspot.com/onthecloud/nudge4j.jar

    How comes you have decided to suggest to copy paste the Base64 code instead of the plaintext version? What about posting plaintext code and sharing the jar on public (free for open-source project) maven repository?

    opened by giorgio-zamparelli 1
  • Not usable to inspect a running application - no non-JVM classes seems to be available

    Not usable to inspect a running application - no non-JVM classes seems to be available

    I have tried a lot but I can't access any of my own classes from nudge4j.

    That makes it useless to inspect a running application - which is what I got the impression would be possible.

    Even though I have lots of classses available on the class path: http://localhost:5050/js?code=java.lang.System.getProperty(%27java.class.path%27)

    I still cant instantiate them, and the (repaired) 'get all classes (exclude JDKs)' links http://localhost:5050/js?code=load(%27https%3A%2F%2Florenzoongithub.github.io%2Fnudge4j%2Ftwigs%2Fdump.all.classes.js%27)%3BdumpAllClasses(%7BskipJDK%3Atrue%7D)

    returns [Total:0]

    opened by nordfalk 0
Releases(0.5.0)
Prometheus instrumentation library for JVM applications

Prometheus JVM Client It supports Java, Clojure, Scala, JRuby, and anything else that runs on the JVM. Table of Contents Using Assets Javadocs Instrum

Prometheus 1.9k Jan 5, 2023
Distributed Tracing, Metrics and Context Propagation for application running on the JVM

Kamon Kamon is a set of tools for instrumenting applications running on the JVM. The best way to get started is to go to our official Get Started Page

Kamon Open Source Project 1.4k Dec 25, 2022
Automon combines the power of AOP (AspectJ) with monitoring or logging tools you already use to declaratively monitor your Java code, the JDK, and 3rd party libraries.

Automon Automon combines the power of AOP (AspectJ) with monitoring tools or logging tools that you already use to declaratively monitor the following

Steve Souza 561 Nov 27, 2022
inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.

?? inspectIT OpenCensus Edition has been released ?? The inspectIT OCE project provides an improved Java agent newly developed from scratch focusing o

inspectIT 531 Dec 13, 2022
Aesthetirat, your neighborhood pet rat that is inside your PC!

aesthetirat Aesthetirat, your neighborhood pet rat that is inside your PC! Disclaimer: This is for educational purposes, and I do not take responsibil

Gavin 34 Dec 2, 2022
JVM Explorer is a Java desktop application for browsing loaded class files inside locally running Java Virtual Machines.

JVM Explorer JVM Explorer is a Java desktop application for browsing loaded class files inside locally running Java Virtual Machines. Features Browse

null 109 Nov 30, 2022
This app corrects your sitting posture and provides feedback in real time in conjunction with the app. A sensor of 31 cells detects your posture to get better life-wellness

Notichair 실시간 자세분석 및 교정 스마트체어 ?? 상명대학교 PRIME 경진대회 수상 ?? 요구사항 31-cell sensor (mdxs-16-5610) 목차 1. 소개 프로젝트 내용 소개 2. 개발 환경 사전 설정 및 환경 구축 3. 기능 Sensors Ap

Minuk_LEE 3 Jan 15, 2022
corrects your sitting posture and provides feedback in real time in conjunction with the app. A sensor of 31 cells detects your posture to get better life-wellness

Notichair 실시간 자세분석 및 교정 스마트체어 ?? 상명대학교 PRIME 경진대회 수상 ?? 요구사항 31-cell sensor (mdxs-16-5610) 목차 1. 소개 프로젝트 내용 소개 2. 개발 환경 사전 설정 및 환경 구축 3. 기능 Sensors Ap

Minuk_LEE 3 Jan 15, 2022
Open Standard for Metadata. A Single place to Discover, Collaborate and Get your data right.

What is OpenMetadata? Try our Sandbox Install & Run Documentation and support Contributors License What is OpenMetadata? OpenMetadata is an Open Stand

null 1.8k Dec 31, 2022