📄 abstractactionapp.java
字号:
Method haltMethod;
try
{
haltMethod = Runtime.class.getMethod( "halt", new Class[] { Integer.TYPE } );
}
catch ( NoSuchMethodException e )
{
System.out.println( "halt not supported by current JVM." );
haltMethod = null;
}
if ( haltMethod != null )
{
Runtime runtime = Runtime.getRuntime();
try
{
haltMethod.invoke( runtime, new Object[] { new Integer( 0 ) } );
}
catch ( IllegalAccessException e )
{
System.out.println( "Unable to call runitme.halt: " + e.getMessage() );
}
catch ( InvocationTargetException e )
{
System.out.println( "Unable to call runitme.halt: " + e.getMessage() );
}
}
}
else if ( action.equals( "restart" ) )
{
WrapperManager.restart();
}
else if ( action.equals( "restartandreturn" ) )
{
WrapperManager.restartAndReturn();
}
else if ( action.equals( "access_violation" ) )
{
WrapperManager.accessViolation();
}
else if ( action.equals( "access_violation_native" ) )
{
WrapperManager.accessViolationNative();
}
else if ( action.equals( "appear_hung" ) )
{
WrapperManager.appearHung();
}
else if ( action.equals( "dump" ) )
{
WrapperManager.requestThreadDump();
}
else if ( action.equals( "deadlock_out" ) )
{
System.out.println( "Deadlocking System.out and System.err ..." );
m_out.setDeadlock( true );
m_err.setDeadlock( true );
}
else if ( action.equals( "users" ) )
{
if ( !m_users )
{
System.out.println( "Begin polling the current and interactive users." );
m_users = true;
}
else if ( m_groups )
{
System.out.println( "Stop polling for group info." );
m_groups = false;
}
else
{
System.out.println( "Stop polling the current and interactive users." );
m_users = false;
}
synchronized( AbstractActionApp.class )
{
AbstractActionApp.class.notifyAll();
}
}
else if ( action.equals( "groups" ) )
{
if ( ( !m_users ) || ( !m_groups ) )
{
System.out.println( "Begin polling the current and interactive users with group info." );
m_users = true;
m_groups = true;
}
else
{
System.out.println( "Stop polling for group info." );
m_groups = false;
}
synchronized( AbstractActionApp.class )
{
AbstractActionApp.class.notifyAll();
}
}
else if ( action.equals( "console" ) )
{
if ( m_consoleRunner == null )
{
m_consoleRunner = new Thread( "console-runner" )
{
public void run()
{
System.out.println();
System.out.println( "Start prompting for actions." );
try
{
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
try
{
do {
System.out.println("Input an action (return stops prompting):");
line = r.readLine();
if ((line != null) && (!line.equals(""))) {
System.out.println("Read action: " + line );
if ( !doAction( line ) )
{
System.out.println( "Unknown action: " + line );
}
}
} while ((line != null) && (!line.equals("")));
}
catch ( IOException e )
{
e.printStackTrace();
}
}
finally
{
System.out.println( "Stop prompting for actions." );
System.out.println();
m_consoleRunner = null;
}
}
};
m_consoleRunner.setDaemon( true );
m_consoleRunner.start();
}
}
else if ( action.equals( "idle" ) )
{
System.out.println( "Run idle." );
m_users = false;
m_groups = false;
synchronized( AbstractActionApp.class )
{
AbstractActionApp.class.notifyAll();
}
}
else if ( action.equals( "properties" ) )
{
System.out.println( "Dump System Properties:" );
Properties props = System.getProperties();
for ( Enumeration en = props.propertyNames(); en.hasMoreElements(); )
{
String name = (String)en.nextElement();
System.out.println( " " + name + "=" + props.getProperty( name ) );
}
System.out.println();
}
else if ( action.equals( "configuration" ) )
{
System.out.println( "Dump Wrapper Properties:" );
Properties props = WrapperManager.getProperties();
for ( Enumeration en = props.propertyNames(); en.hasMoreElements(); )
{
String name = (String)en.nextElement();
System.out.println( " " + name + "=" + props.getProperty( name ) );
}
System.out.println();
}
else if ( action.equals( "listener" ) )
{
System.out.println( "Updating Event Listeners:" );
WrapperManager.removeWrapperEventListener( this );
WrapperManager.addWrapperEventListener( this, m_eventMask );
}
else if ( action.equals( "service_list" ) )
{
WrapperWin32Service[] services = WrapperManager.listServices();
if ( services == null )
{
System.out.println( "Services not supported by current platform." );
}
else
{
System.out.println( "Registered Services:" );
for ( int i = 0; i < services.length; i++ )
{
System.out.println( " " + services[i] );
}
}
}
else if ( action.equals( "service_interrogate" ) )
{
try
{
WrapperWin32Service service = WrapperManager.sendServiceControlCode(
m_serviceName, WrapperManager.SERVICE_CONTROL_CODE_INTERROGATE );
System.out.println( "Service after interrogate: " + service );
}
catch ( WrapperServiceException e )
{
e.printStackTrace();
}
}
else if ( action.equals( "service_start" ) )
{
try
{
WrapperWin32Service service = WrapperManager.sendServiceControlCode(
m_serviceName, WrapperManager.SERVICE_CONTROL_CODE_START );
System.out.println( "Service after start: " + service );
}
catch ( WrapperServiceException e )
{
e.printStackTrace();
}
}
else if ( action.equals( "service_stop" ) )
{
try
{
WrapperWin32Service service = WrapperManager.sendServiceControlCode(
m_serviceName, WrapperManager.SERVICE_CONTROL_CODE_STOP );
System.out.println( "Service after stop: " + service );
}
catch ( WrapperServiceException e )
{
e.printStackTrace();
}
}
else if ( action.equals( "service_user" ) )
{
try
{
for ( int i = 128; i < 256; i+=10 )
{
WrapperWin32Service service = WrapperManager.sendServiceControlCode(
m_serviceName, i );
System.out.println( "Service after user code " + i + ": " + service );
}
}
catch ( WrapperServiceException e )
{
e.printStackTrace();
}
}
else
{
// Unknown action
return false;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -