Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 777177
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T19:33:45+00:00 2026-05-14T19:33:45+00:00

How do I install signal handling logic iff sun.misc.Signal is available? Background First generation

  • 0

How do I install signal handling logic iff sun.misc.Signal is available?

Background
First generation of my code, which assumed signal handling availability, looked something like this:

class MyApp {
    public static void main(String[] args) {
        ...
        Signal.handle(term_sig, new SignalHandler() {
            public void handle(Signal sig) { ... }
        });
        ...
    }
}

I believe I understand how to reflectively test for and use signal handlers — Class.forName("sun.misc.Signal"), reflectively call Signal.handle, and so forth.

My impulse was simply to instantiate another anonymous inner class with the dynamically obtained SignalHandler class, but I think that’s just wishful syntax.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T19:33:46+00:00Added an answer on May 14, 2026 at 7:33 pm

    You need to use a Dynamic Proxy to implement the SignalHandler interface. The rest is just basic reflection.

    Update

    Here’s how you do it. Note, I’ve omitted the try-catch that needs to wrap all of this

            Class<?> handlerCl = Class.forName("sun.misc.SignalHandler");
            Class<?> signalCl = Class.forName("sun.misc.Signal");
    
            Constructor signalCtor = signalCl.getConstructor(String.class);
            Method signalHandle = signalCl.getMethod("handle", signalCl, handlerCl);
    
            // Create a proxy class that implements SignalHandler
            Class<?> proxyClass = Proxy.getProxyClass(signalCl.getClassLoader(),
                handlerCl);
    
            // This is used by the instance of proxyClass to dispatch method calls
            InvocationHandler invHandler = new InvocationHandler()
            {
                public Object invoke(Object proxy,
                    Method method, Object[] args) throws Throwable
                {
                    // proxy is the SignalHandler's "this" rederence
                    // method will be the handle(Signal) method
                    // args[0] will be an instance of Signal
                    // If you're using this object for multiple signals, you'll
                    // you'll need to use the "getName" method to determine which
                    // signal you have caught.
                    return null;
                }
            };
    
            // Get the constructor and create an instance of proxyClass
            Constructor<?> proxyCtor = proxyClass.getConstructor(InvocationHandler.class);
            Object handler = proxyCtor.newInstance(invHandler);
    
            // Create the signal and call Signal.handle to bind handler to signal
            Object signal = signalCtor.newInstance("TERM");
            signalHandle.invoke(null, signal, handler);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is it possible in Perl to install only one signal handler for all the
I install wxWidgets with macports then ran the command: sudo cabal install wx which
What install tool can I use to create Virtual Directory on IIS? OpenSource, free
The install instructions are: $ python setup.py build $ sudo python setup.py install #
On install I copy some files in 'System32' folder. When uninstalling these files are
On install I want to optionally copy some .ini files from SOURCEDIR to TARGETDIR
I'm trying to install a .NET service I wrote. As recommended by MSDN, I'm
I added a custom install action to my installer to add one of my
I'm trying to install Laconica , an open-source Microblogging application on my Windows development
I'm trying to install 'quadrupel', a library that relies on ffmpeg on Solaris x86.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.