Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Knute Johnson Newsgroups: comp.lang.java.programmer Subject: Re: How does it know? Date: Sun, 14 Sep 2014 07:48:45 -0700 Organization: A noiseless patient Spider Lines: 40 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 14 Sep 2014 14:48:45 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="9f88abf500e70723148465e543f647d1"; logging-data="21471"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Z5ItSQp/dBCZGDcpEQNlj" User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1 In-Reply-To: Cancel-Lock: sha1:2Ldk9Tr3iqRjlI8WfxEBhXTTFgM= Xref: csiph.com comp.lang.java.programmer:29976 On 9/14/2014 06:52, Mike Amling wrote: > On 9/12/14 6:18 PM, Knute Johnson wrote: >> I'd like to figure out a way to store some sort of a reference to >> Main.main() so that I could execute it. > > Any reason you don't want to use plain old reflection? > > import java.lang.reflect.Method; > import java.lang.reflect.InvocationTargetException; > import java.util.HashMap; > ... > > Method callme; > try { > callme=test1.class.getDeclaredMethod("main", > new Class[]{new String[0].getClass()}); > } catch (final NoSuchMethodException n) { > return; > } > HashMap store=new HashMap(); > store.put("main", callme); > > > try { > store.get("main").invoke(null, new Object[]{new String[0]}); > } catch (final IllegalAccessException a) { > } catch (final InvocationTargetException t) { > } > > --Mike Amling > Tm8gbmVlZCBmb3IgMS44LCBqdXN0IDEuMg== That works and I guess that's what I'm going to end up with. I just thought that since you can put test1.main() in a program that you could get there from a String without quite so much code. Thanks everybody for all the answers! knute...