📄 serviceshell.java
字号:
package serviceImpl;
import java.io.*;
import java.util.*;
public class ServiceShell
extends naplet.resource.PrivilegedService
{
/**
* Like PipedReader, ServiceReader pipe provides two ways to read
* characters: read() for a single character and read(buf, offset,
* length) for up to <code>length</code> characters of data
*
* Similarly, ServiceWriter pipe privides two ways to write characters:
* write(char c) for a single character and
* write(char buf[], int offset, int length) for a number of characters.
*
*/
public void run()
{
for ( ; ; )
{
System.out.println( "Service Shell>" );
String cmd = null;
try
{
int ch;
int i = 0;
char[] chars = new char[128];
while ( ( ch = inReader.read() ) != -1 )
{
chars[i++] = ( char ) ch;
}
cmd = new String( chars, 0, i );
}
catch ( IOException ioe )
{
System.out.println( ioe.getMessage() );
}
String[] lines = rexec( cmd );
try
{
try
{
for ( int i = 0; i < lines.length; i++ )
{
char[] file = lines[i].toCharArray();
for ( int j = 0; j < file.length; j++ )
{
outWriter.write( file[j] );
}
outWriter.write( '\t' );
}
}
finally
{
outWriter.close();
}
}
catch ( IOException ioe )
{}
}
}
private String[] rexec( String cmd )
{
List lines = new ArrayList();
String line;
try
{
Process child = Runtime.getRuntime().exec( cmd );
InputStream lsOut = child.getInputStream();
InputStreamReader r = new InputStreamReader( lsOut );
BufferedReader in = new BufferedReader( r );
while ( ( line = in.readLine() ) != null )
{
lines.add( line );
}
}
catch ( Exception e )
{
e.printStackTrace();
}
return ( String[] ) lines.toArray( new String[]
{} );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -