How to run Unix command with Pipe ( | )?
Dear Friends,
I have to execute the below unix command through java program.
*ps -ewwo pid,args | grep -E "abc.sh|xyz.jar" | gawk '{ print $1 }' | wc -l*
My code to execute this command is,
Runtime run = Runtime.getRuntime();
File workDir = new File("/root/sat");
String psCmd = "ps -ewwo pid,args | grep -E \"abc.sh|xyz.jar \" | gawk '{ print $1 }' | wc -l";
Process process = run.exec(psCmd, null, workDir);
String line;
int i = process.waitFor() ;
if(i == 0) {
BufferedReader buf = new BufferedReader( new InputStreamReader( process.getInputStream() ) ) ;
while ( ( line = buf.readLine() ) != null )
System.out.println("Line - ["+line+"]") ;
} else {
BufferedReader stdErr = new BufferedReader(new InputStreamReader(process.getErrorStream()));
// read the output from the command
while ((line = stdErr.readLine()) != null) {
System.out.println(line);
}When i execute this command, i'm getting output as,
ERROR: Garbage option.
When i analyse the above error, i found that, the PIPE ( | ) command is not supported through java.
Could anyone please help me how to execute the above unix command (with | ) in java?
Thanks in advance,
Sathish
The pipe has to be interpreted by a shell so you need
String[] psCmd =
"sh",
"-c"
"ps -ewwo pid,args | grep -E \"abc.sh|xyz.jar \" | gawk '{ print $1 }' | wc -l"
Process process = run.exec(psCmd, null, workDir);You should also read, re-read and then implement the recommendations in the 4 sections of http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html .
Similar Messages
-
Execute an Unix command with pipe
Hi,
How do I execute a unix command with pipe from JAVA runTime.exec(cmd)? for example: "ls -l |wc -l"
should return number of files. However, there is no output result. If I use "ls -l" as command argument, it gives file list.
Here is my program:
public static void main(String[] args) {
try {
Runtime runCmd = Runtime.getRuntime();
System.out.println("sys testing");
Process retProc = runCmd.exec(args[0]);
BufferedReader bread = new BufferedReader
(new InputStreamReader(retProc.getInputStream()) );
String out = bread.readLine();
while ( out != null ) {
System.out.println(out);
out = bread.readLine();
DataOutputStream outSt = new DataOutputStream(retProc.getOutputStream() );
outSt.writeChars(args[1]);
outSt.flush();
} catch (Exception ie) {
ie.printStackTrace();
Thanks in advance,
JeffI got my answer !
No need to reply -
How to run unix command from Oracle Foms 10g
OS: UNIX Solaries, Oracle Application Server 10g
To run shell script from Oracle Forms, I used the following host('/bin/bash /u01/compile.sh') and it works well
Now, I need to run unix command something like
host('mv form1.fmx FORM1.FMX') but it's not working
I tried to append the command "mv form1.fmx FORM1.FMX" to the compile.sh shell script but also it's not working although the rest lines of the shell script is running well
Edited by: slamonty on Aug 23, 2012 12:36 AMYes, Thank you so much, it works well as follow
$ /bin/mv /u01/oracle/runtime/test/form1.fmx /u01/oracle/runtime/test/FORM1.FMX Edited by: slamonty on Aug 23, 2012 9:59 AM
Edited by: slamonty on Aug 23, 2012 11:14 AM -
How do run unix command in java
hi
All unix command working fine in our java program.
but i want change user in linux by using java. it's not working.
"su root" This command onely not working.
anybody know help me
This is my ID [email protected]
This my code
<% String s = null;
try{
Process p = Runtime.getRuntime().exec("su root");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null)
out.println(s);
catch(Exception e) {}
%>I don't have further info to add to your first post, but think your guess seems quite reasonable. I thought of starting a new thread on the same topic, but think this (question) fits in here, too.
I have Java code (freeware, not opensoure), intended for Unix, which basically provides the graphical interface and relies on an I/O layer (C + shell scripts) to do most of the work. I have access to the C+shell scripts which are opensource. I ported it to Cygwin and want to use it under Windows (there is no Cygwin native Java VM).
My problem now boils down to " how to run commands under Unix and what differences are there with Windows". What are the variants?
I have to guess what the program is doing when I get an IOException at some point. E.g.: a call to shell script may be made in a different way as to a compiled exe in Unix?. I found a way to bypass path problems because forward slashes are also accepted and /cygdrive/c construct can be replace by c:/; shell scripts can be compiled into exes using shc and they work; if symbolic links are replaced by duplication of exe files, they work. What will happen in an instance whereby a process runs a shell script dynamically, through a pipe (the shell script is compiled in the Cygwin/win version and receives parameters) in a construct like:
pipefp = epopen(cmdbuf,"w"); /* (cmbuf is "makehdr par1 par2 ... ") (makehdr was a shell script and is now compiled exe for Cygwin/Windows) */?.
Thanks.
LT -
How to run UNIX command to a remote SUN machine through Java from Windows
Dear All:
I want to write one Java program which will be run on my Windows Machine.
My Java program will will login in a SUN machine remotely say telnet and run some command.
I want all those command output in my client windows PC for futher processing.
Can anyone help me doing this?
BR,
P. Guptaimport java.net.*;
import java.io.*;
import java.util.*;
public class TelnetSocketDemo {
static String list="";
static String listArr[], hostArr[];
static String host="", lhost="";
public static void main(String[] args)throws IOException
ExecuteUnixCmd obj=new ExecuteUnixCmd();
// InetAddress localMachine = InetAddress.getLocalHost();
// host=localMachine.getHostName();
list=obj.ExecuteUnixCmdMain();
int port=getPort(list,"Live");
System.out.println(port);
Socket sock = null;
String prompt=">";
String output = null;
try
// Connect to the PoleStar process.
sock = new Socket("localhost",port);
sock.setSoTimeout(60000);
// Get the I/O streams for the socket.
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
InputStream in = sock.getInputStream();
// Get to the silent console port.
// out.println("S");
// readToPrompt(in,area);
// Fetch the response to the command.
out.println("list all");
output = readToPrompt(in,prompt);
//System.out.println(output);
//out.println("quit");
//output=readToPrompt(in);
catch (Exception ex)
String msg = "unable to get Connection for PoleStar";
finally
try
// close socket
sock.close();
catch (Exception ex)
System.out.println(output);
private static String readToPrompt(InputStream in,String prompt)throws IOExcepti
on
byte[] mByte = null;
int iStrt = 0, iLen = 2000, nBytes = 0;
StringBuffer buf = new StringBuffer();
String s = null;
boolean bNotFinished = true;
do
mByte = new byte[2000];
nBytes = in.read(mByte, iStrt, iLen);
if (nBytes == -1)
break;
// lost our TCP/IP connection
// bNotFinished = false;
// Convert byte stream to a string
s = new String(mByte, 0, iStrt + nBytes);
if (prompt.equals("") == false)
if (prompt.equals(">"))
if (s.indexOf(0x04) != -1)
bNotFinished = false;
// the hub sends the prompt at the beginning and the end
else if (s.indexOf(prompt) != -1)
bNotFinished = false;
buf.append(s);
} while (bNotFinished);
return buf.toString();
public static int getPort(String list, String area)
int port;
String listArr[],hostArr[];
String lhost="";
listArr=list.split(",");
for(int i =0; i < listArr.length ; i++)
lhost=listArr;
hostArr=lhost.split("#");
if((hostArr[1].equalsIgnoreCase("connectDev20"))&&(hostArr[0].indexOf(area)!=-
1))
port=Integer.parseInt(hostArr[2]);
return port;
else
continue ;
return 0; -
At CRS-1,how can i use show command with pipe | ?
HI,ALL
when I use show command with pipe on the CRS-1,the command invalid
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |errors
^
% Invalid input detected at '^' marker.
========================================================
But Previously on the cisco 7609,I can use the show command
GZ-DM-SR-1.MAN.7609#show int | include line |err
Vlan1 is down, line protocol is down
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 interface resets
Vlan11 is administratively down, line protocol is down
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 interface resets
Vlan99 is down, line protocol is down
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 interface resetsRP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |errors
^
% Invalid input detected at '^' marker.
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |?
|
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line | |?
^
% Invalid input detected at '^' marker.
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line | ?
begin Begin with the line that matches
exclude Exclude lines that match
file Save the configuration
include Include lines that match
utility A set of common unix utilities
<cr>
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |
% Incomplete command.
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |errors
^
% Invalid input detected at '^' marker.
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line | ?
begin Begin with the line that matches
exclude Exclude lines that match
file Save the configuration
include Include lines that match
utility A set of common unix utilities
<cr>
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line |?
|
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line | include er$
Thu Jan 15 22:36:24.120 GMT
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#
RP/0/RP0/CPU0:JA-DL-CR-1.MAN.CRS-1#show interfaces | include line
Thu Jan 15 22:37:05.013 GMT
Loopback0 is up, line protocol is up
Loopback1 is up, line protocol is up
Loopback6 is up, line protocol is up
Null0 is up, line protocol is up
POS0/0/0/0 is up, line protocol is up (APS not Configured )
POS0/0/1/0 is up, line protocol is up (APS not Configured )
TenGigE0/0/4/0 is up, line protocol is up -
Powershell: how to run vbs script with switches.
Background: To remove a specific service, I usually log into a server, go to path c$\Program files\HP... find a specific vbs, and run it using CMD.exe.
Now, I'm new to powershell, so I'm looking into automating this job. When I use CMD, I run cscript path\serviceinstall.vbs
-r.
How do I add cscript switches to powershell?
IF
((test-path -path "servername\C$\Program Files\...") -eq "true")
invoke-command -scriptblock ""servername\C$\Program Files\...\serviceinstall.vbs -r?1. You cannot run VBS as a scriptblock.
2. If youactually were to have read the full help ypu would have seen how to use the command.
3. Given you initial questin and the vague answers you gave there is nothing any could do to help you.
If you do not give accurate information you will not likely get answers that are helpful.
I recommend starting at the beginning and learning PowerShell basics. If you had done that you would know that a script block is not a quoted string with vbscript in it or the path to a file.
When working with any technology it is important to read the instructions carefully. It is also useful to knowhow to do basic research on the technology you are trying to learn.
There are 15 examples in PowerShell V2 for Invoke-Command. Here they are as captured directly from PowerShell V2. (The is no update-help on V2. All help is built in.)
-------------------------- EXAMPLE 1 --------------------------
C:\PS>invoke-command -filepath c:\scripts\test.ps1 -computerName Server01
Disks: C:, D:, E:
Status: Warning, Normal, Normal
Description
This command runs the Test.ps1 script on the Server01 computer.
The command uses the FilePath parameter to specify a script that is located on the local computer. The script runs
on the remote computer and the results are returned to the local computer.
-------------------------- EXAMPLE 2 --------------------------
C:\PS>invoke-command -computername server01 -credential domain01\user01 -scriptblock {get-culture}
Description
This command runs a Get-Culture command on the Server01 remote computer.
It uses the ComputerName parameter to specify the computer name and the Credential parameter to run the command in
the security context of "Domain01\User01," a user with permission to run commands. It uses the ScriptBlock paramete
r to specify the command to be run on the remote computer.
In response, Windows PowerShell displays a dialog box that requests the password and an authentication method for t
he User01 account. It then runs the command on the Server01 computer and returns the result.
-------------------------- EXAMPLE 3 --------------------------
C:\PS>$s = new-pssession -computername server02 -credential domain01\user01
C:\PS> invoke-command -session $s -scriptblock {get-culture}
Description
This example runs the same "Get-Culture" command in a session (a persistent connection) on the Server02 remote comp
uter. Typically, you create a session only when you are running a series of commands on the remote computer.
The first command uses the New-PSSession cmdlet to create a session on the Server02 remote computer. Then, it saves
the session in the $s variable.
The second command uses the Invoke-Command cmdlet to run the Get-Culture command on Server02. It uses the Session p
arameter to specify the session saved in the $s variable.
In response, Windows PowerShell runs the command in the session on the Server02 computer.
-------------------------- EXAMPLE 4 --------------------------
C:\PS>invoke-command -computername Server02 -scriptblock {$p = get-process powershell}
C:\PS> invoke-command -computername Server02 -scriptblock {$p.virtualmemorysize}
C:\PS>
C:\PS> $s = new-pssession -computername Server02
C:\PS> invoke-command -session $s -scriptblock {$p = get-process powershell}
C:\PS> invoke-command -session $s -scriptblock {$p.virtualmemorysize}
17930240
Description
This example compares the effects of using ComputerName and Session parameters of Invoke-Command. It shows how to u
se a session to run a series of commands that share the same data.
The first two commands use the ComputerName parameter of Invoke-Command to run commands on the Server02 remote comp
uter. The first command uses the Get-Process command to get the PowerShell process on the remote computer and to sa
ve it in the $p variable. The second command gets the value of the VirtualMemorySize property of the PowerShell pro
cess.
The first command succeeds. But, the second command fails because when you use the ComputerName parameter, Windows
PowerShell creates a connection just to run the command. Then, it closes the connection when the command is complet
e. The $p variable was created in one connection, but it does not exist in the connection created for the second co
mmand.
The problem is solved by creating a session (a persistent connection) on the remote computer and by running both of
the related commands in the same session.
The third command uses the New-PSSession cmdlet to create a session on the Server02 computer. Then it saves the ses
sion in the $s variable. The fourth and fifth commands repeat the series of commands used in the first set, but in
this case, the Invoke-Command command uses the Session parameter to run both of the commands in the same session.
In this case, because both commands run in the same session, the commands succeed, and the $p value remains active
in the $s session for later use.
-------------------------- EXAMPLE 5 --------------------------
C:\PS>$command = { get-eventlog -log "windows powershell" | where {$_.message -like "*certificate*"} }
C:\PS> invoke-command -computername S1, S2 -scriptblock $command
Description
This example shows how to enter a command that is saved in a local variable.
When the entire command is saved in a local variable, you can specify the variable as the value of the ScriptBlock
parameter. You do not have to use the "param" keyword or the ArgumentList variable to submit the value of the local
variable.
The first command saves a Get-Eventlog command in the $command variable. The command is formatted as a script block
The second command uses the Invoke-Command cmdlet to run the command in $command on the S1 and S2 remote computers.
-------------------------- EXAMPLE 6 --------------------------
C:\PS>invoke-command -computername server01, server02, TST-0143, localhost -configurationname MySession.PowerShell
-scriptblock {get-eventlog "windows powershell"}
Description
This example demonstrates how to use the Invoke-Command cmdlet to run a single command on multiple computers.
The command uses the ComputerName parameter to specify the computers. The computer names are presented in a comma-s
eparated list. The list of computers includes the "localhost" value, which represents the local computer.
The command uses the ConfigurationName parameter to specify an alternate session configuration for Windows PowerShe
ll and the ScriptBlock parameter to specify the command.
In this example, the command in the script block gets the events in the Windows PowerShell event log on each remote
computer.
-------------------------- EXAMPLE 7 --------------------------
C:\PS>$version = invoke-command -computername (get-content machines.txt) -scriptblock {(get-host).version}
Description
This command gets the version of the Windows PowerShell host running on 200 remote computers.
Because only one command is run, it is not necessary to create persistent connections (sessions) to each of the com
puters. Instead, the command uses the ComputerName parameter to indicate the computers.
The command uses the Invoke-Command cmdlet to run a Get-Host command. It uses dot notation to get the Version prope
rty of the Windows PowerShell host.
To specify the computers, it uses the Get-Content cmdlet to get the contents of the Machine.txt file, a file of com
puter names.
These commands run synchronously (one at a time). When the commands complete, the output of the commands from all o
f the computers is saved in the $version variable. The output includes the name of the computer from which the data
originated.
-------------------------- EXAMPLE 8 --------------------------
C:\PS>$s = new-pssession -computername Server01, Server02
C:\PS> invoke-command -session $s -scriptblock {get-eventlog system} -AsJob
Id Name State HasMoreData Location Command
1 Job1 Running True Server01,Server02 get-eventlog system
C:\PS> $j = Get-Job
C:\PS> $j | format-list -property *
HasMoreData : True
StatusMessage :
Location : Server01,Server02
Command : get-eventlog system
JobStateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : e124bb59-8cb2-498b-a0d2-2e07d4e030ca
Id : 1
Name : Job1
ChildJobs : {Job2, Job3}
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
StateChanged :
C:\PS> $results = $j | Receive-Job
Description
These commands run a background job on two remote computers. Because the Invoke-Command command uses the AsJob para
meter, the commands run on the remote computers, but the job actually resides on the local computer and the results
are transmitted to the local computer.
The first command uses the New-PSSession cmdlet to create sessions on the Server01 and Server02 remote computers.
The second command uses the Invoke-Command cmdlet to run a background job in each of the sessions. The command uses
the AsJob parameter to run the command as a background job. This command returns a job object that contains two ch
ild job objects, one for each of the jobs run on the two remote computers.
The third command uses a Get-Job command to save the job object in the $j variable.
The fourth command uses a pipeline operator (|) to send the value of the $j variable to the Format-List cmdlet, whi
ch displays all properties of the job object in a list.
The fifth command gets the results of the jobs. It pipes the job object in $j to the Receive-Job cmdlet and stores
the results in the $results variable.
-------------------------- EXAMPLE 9 --------------------------
C:\PS>$MWFO-LOg = Microsoft-Windows-Forwarding/Operational
C:\PS> invoke-command -computername server01 -scriptblock {param($log, $num) get-eventlog -logname $log -newest $nu
m} -ArgumentList $MWFO-log, 10
Description
This example shows how to include the values of local variables in a command run on a remote computer.
The first command saves the name of the Microsoft-Windows-Forwarding/Operational event log in the $MWFO-Log variabl
e.
The second command uses the Invoke-Command cmdlet to run a Get-EventLog command on the Server01 remote computer tha
t gets the 10 newest events from the Microsoft-Windows-Forwarding/Operational event log on Server01.
This command uses the "param" keyword to create two variables, $log and $num, that are used as placeholders in the
Get-EventLog command. These placeholders have arbitrary names that do not need to match the names of the local vari
ables that supply their values.
The values of the ArgumentList parameter demonstrate the two different ways to specify values in the argument list.
The value of the $log placeholder is the $MFWO-Log variable, which is defined in the first command. The value of t
he $num variable is 10.
Before the command is sent to the remote computer, the variables are replaced with the specified values.
-------------------------- EXAMPLE 10 --------------------------
C:\PS>invoke-command -computername S1, S2 -scriptblock {get-process powershell}
PSComputerName Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
S1 575 15 45100 40988 200 4.68 1392 powershell
S2 777 14 35100 30988 150 3.68 67 powershell
C:\PS> invoke-command -computername S1, S2 -scriptblock {get-process powershell} -HideComputerName
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
575 15 45100 40988 200 4.68 1392 powershell
777 14 35100 30988 150 3.68 67 powershell
Description
This example shows the effect of using the HideComputerName parameter of Invoke-Command.
The first two commands use the Invoke-Command cmdlet to run a Get-Process command for the PowerShell process. The o
utput of the first command includes the PsComputerName property, which contains the name of the computer on which t
he command ran. The output of the second command, which uses the HideComputerName parameter, does not include the P
sComputerName column.
Using the HideComputerName parameter does not change the object. You can still use the Format cmdlets to display th
e PsComputerName property of any of the affected objects.
-------------------------- EXAMPLE 11 --------------------------
C:\PS>invoke-command -comp (get-content servers.txt) -filepath c:\scripts\sample.ps1 -argumentlist Process, Service
Description
This example uses the Invoke-Command cmdlet to run the Sample.ps1 script on all of the computers listed in the Serv
ers.txt file. The command uses the FilePath parameter to specify the script file. This command allows you to run th
e script on the remote computers, even if the script file is not accessible to the remote computers.
When you submit the command, the content of the Sample.ps1 file is copied into a script block and the script block
is run on each of the remote computers. This procedure is equivalent to using the ScriptBlock parameter to submit t
he contents of the script.
-------------------------- EXAMPLE 12 --------------------------
C:\PS>$LiveCred = Get-Credential
C:\PS> Invoke-Command -ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.exchangelabs.com/powershell `
-Credential $LiveCred -Authentication Basic `
-scriptblock {Invoke-Command {Set-Mailbox dan -DisplayName "Dan Park"}
Description
This example shows how to run a command on a remote computer that is identified by a URI (Internet address). This p
articular example runs a Set-Mailbox command on a remote Exchange server. The backtick (`) in the command is the Wi
ndows PowerShell continuation character.
The first command uses the Get-Credential cmdlet to store Windows Live ID credentials in the $LiveCred variab the c
redentials dialog box appears, enter Windows Live ID credentials.
The second command uses the Invoke-Command cmdlet to run a Set-Mailbox command. The command uses the ConfigurationN
ame parameter to specify that the command should run in a session that uses the Microsoft.Exchange session configur
ation. The ConnectionURI parameter specifies the URL of the Exchange server endpoint.
The credential parameter specifies tle. Whenhe Windows Live credentials stored in the $LiveCred variable. The Authe
nticationMechanism parameter specifies the use of basic authentication. The ScriptBlock parameter specifies a scrip
t block that contains the command.
-------------------------- EXAMPLE 13 --------------------------
C:\PS>$max = New-PSSessionOption -MaximumRedirection 1
C:\PS> Invoke-Command -ConnectionUri https://ps.exchangelabs.com/powershell `
-scriptblock {Invoke-Command {Get-Mailbox dan} `
-AllowRedirection -SessionOption $max
Description
This command shows how to use the AllowRedirection and SessionOption parameters to manage URI redirection in a remo
te command.
The first command uses the New-PSSessionOption cmdlet to create a PSSessionOpption object that it saves in the $max
variable. The command uses the MaximumRedirection parameter to set the MaximumConnectionRedirectionCount property
of the PSSessionOption object to 1.
The second command uses the Invoke-Command cmdlet to run a Get-Mailbox command on a remote server running Microsoft
Exchange Server. The command uses the AllowRedirection parameter to provide explicit permission to redirect the co
nnection to an alternate endpoint. It also uses the SessionOption parameter to specify the session object in the $m
ax variable.
As a result, if the remote computer specified by the ConnectionURI parameter returns a redirection message, Windows
PowerShell will redirect the connection, but if the new destination returns another redirection message, the redir
ection count value of 1 is exceeded, and Invoke-Command returns a non-terminating error.
-------------------------- EXAMPLE 14 --------------------------
C:\PS>$so = New-PSSessionOption -SkipCACheck
PS C:\> invoke-command $s { get-hotfix } -SessionOption $so -credential server01\user01
Description
This example shows how to create and use a SessionOption parameter.
The first command uses the New-PSSessionOption cmdlet to create a session option. It saves the resulting SessionOpt
ion object in the $so parameter.
The second command uses the Invoke-Command cmdlet to run a Get-Hotfix command remotely. The value of the SessionOpt
ion parameter is the SessionOption object in the $so variable.
-------------------------- EXAMPLE 15 --------------------------
C:\PS>enable-wsmanCredSSP -delegate server02
C:\PS> connect-wsman Server02
C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true
C:\PS> $s = new-pssession server02
C:\PS> invoke-command -session $s -script {get-item \\Net03\Scripts\LogFiles.ps1} -authentication credssp -credenti
al domain01\admin01
Description
This example shows how to access a network share from within a remote session.
The command requires that CredSSP delegation be enabled in the client settings on the local computer and in the ser
vice settings on the remote computer. To run the commands in this example, you must be a member of the Administrato
rs group on the local computer and the remote computer.
The first command uses the Enable-WSManCredSSP cmdlet to enable CredSSP delegation from the Server01 local computer
to the Server02 remote computer. This configures the CredSSP client setting on the local computer.
The second command uses the Connect-WSman cmdlet to connect to the Server02 computer. This action adds a node for t
he Server02 computer to the WSMan: drive on the local computer, allowing you to view and change the WS-Management s
ettings on the Server02 computer.
The third command uses the Set-Item cmdlet to change the value of the CredSSP item in the Service node of the Serve
r02 computer to True. This action enables CredSSP in the service settings on the remote computer.
The fourth command uses the New-PSSession cmdlet to create a PSSession on the Server02 computer. It saves the PSSes
sion in the $s variable.
The fifth command uses the Invoke-Command cmdlet to run a Get-Item command in the session in $s that gets a script
from the Net03\Scripts network share. The command uses the Credential parameter and it uses the Authentication para
meter with a value of CredSSP.
I suggest spending som etime learning the basics. It will save you a lot of frustration in the future.
¯\_(ツ)_/¯ -
How to run JavaFX jar with JRE7 on MAC OS Lion 10.7.5 ?
I have created a bundled JavaFX application jar with ANT on Windows 8 O.S. , 64 bit machine. I have JavaFx2.0 and Java 1.7.0_09 installed on my Window O.S.
<target name="CreatingJars" depends="Compiling" description="generate the distribution" >
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant" classpath="${env.JAVA_HOME}/lib/ant-javafx.jar"/>
<mkdir dir="${WorkingFolder}/temp/libs"/>
<copy todir="${WorkingFolder}/temp/libs">
<fileset file="${WorkingFolder}/CustomJars/ProjectLib.jar">
</fileset>
</copy>
<copy todir="${WorkingFolder}/temp/libs">
<fileset dir="${WorkingFolder}/libs">
</fileset>
</copy>
<fx:jar destfile="${WorkingFolder}/${app.name}.jar">
<fx:application mainClass="${main.class}"/>
<fx:resources>
<fx:fileset dir="${WorkingFolder}/temp/"/>
</fx:resources>
<fileset dir="${WorkingFolder}/build"/>
<fileset dir="${WorkingFolder}/resources"/>
</fx:jar>
</target> When I am trying to run that JavaFX application jar on MAC OS Lion 10.7.5 using
java -jar application.jar
It always shows a dialog "The application require a newer version of Java Run-time" with download link. Even I have downloaded and successfully installed it on my MAC machine but it still shows me the same window.
java -version is always point to 1.6.
Then I searched for Java Preferences to point the current JRE 1.7 but I could find Java Preferences at Applications -> Utilities -> Java -> Java Preferences.
I would like to know -- how to run JavaFX jar with JRE7 on MAC OS Lion 10.7.5? Is their any other way to run the JavaFX application JAR with JRE7?Do I need to download the whole JAVA 1.7 on MAC to run the JAR? No
Can not I run the Jar file with Jre7?Yes, you can.
This may be because I have downloaded the JRE 1.7Yep, that's correct, the java_home command only works for jdk's - sorry for the confusion.
For jre7+ versions, only a single Oracle jre version is allowed to be installed on the machine at a time - making a tool like java_home redundant for jre checking.
Weirdly, jre7u10 does not supplant the Apple Java on the command line path by default. If you just type java -v, then the Apple java version will displayed if you have an old Java 6 from Apple and a new Oracle jre7+.
The Oracle jre is always located under (also somewhat strangely):
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javaTo test jar launching, I used the willow JavaFX browser pre-release jar available here:
http://code.google.com/p/willow-browser/downloads/detail?name=Willow-0.1-prerelease.jar
Then I launched the jar from the command line using:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar Willow-0.1-prerelease.jar The JavaFX jar ran fine on jre7 with the above machine.
The test machine was running Mac OS X 8 with Oracle jre7u10 installed as well as the Apple Java 6 runtime, but no Oracle jdk7+ installed. -
Running Unix Command from WEB-APPLICATION
Hi all,
I want to run unix command from a java-based web application. the basic code part is this ---
public class RunCommand
public String runIt()
String s = null, returnString = "";
Process p=null;
try
Runtime rt = Runtime.getRuntime();
p = rt.exec("sh testPOC.ksh");
p.waitFor();
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
// read the output from the command
returnString += "Here is the standard output of the command:<br>";
while ((s = stdInput.readLine()) != null) {
returnString += s;
// read any errors from the attempted command
returnString += "Here is the standard error of the command (if any): <br>";
while ((s = stdError.readLine()) != null) {
returnString += s;
catch (IOException e)
returnString += "exception happened - here's what I know: ";
returnString += "error-> " + e.getMessage();
catch(Exception e)
returnString += "exception happened - here's what I know: ";
returnString += "error-> " + e.getMessage();
return returnString;
}this class is kept as an inner class. The control comes to its outer class, from servlet, from which the runit() is called. but the exception is occuring at line of p=rt.exec(.....). it tells "<command name> : not found transaction completed" [got this using getMessage() method].
i am unable to show(and see, too) the stacktrace, because i don't have access to that test environment and its log. i can't run this in local because its windows one.
now can anyone tell me, where is the problem. is there any limitation in web application server/container? this was successful when i used command prompt writing a .java file. Please help me. Thanks in advance...Friends, i've got, where the problem is.
when we run a class file directly from a command prompt, we get an environment with that shell window. but for a servlet application running these kind of commands from a class creates kind of child processes. each and every command is executed as a child process of jvm and don't get those environment. we have 'PATH' variable in the environment. when a command (say, 'dir' or 'sh' or 'ls', etc.) is executed, the shell first search for that executable file (i.e. dir / sh / ls) in the given paths in the variable 'PATH'. this is not available for the child commands of jvm. hence the basic commands are searched in the current directory of the jvm and they are failed.
i solved the problem giving full path of the commands. like :
p = rt.exec("/bin/sh runningScript.ksh") -
How java runs in command prompt and why java runs on it
how java runs in command prompt and why java runs on it
command prompt was used before the development of IDEs like RAD,eclipse etc.
its still used for better understanding of the compilation and errors.
type the java file and save the file(source file) in the bin folder of ur jdk environment with extension .java. the source file must be the one that has the main method declared.
in the cmd prompt screen , set the path of bin folder.
eg:C:/program files/jdk(some version)/bin/...
for compilation,type:
javac (source file_name).java and press enter
for running the file:
java source file_name -
How to run JavaFX Jar with JRE 7 on MAC OS Lion 10.7.5 ?
I had java 1.6 installed on my MAC OSX Lion 10.7.5. When I am trying to run that JavaFX application jar
java -jar application.jar
It always shows a dialog "The application require a newer version of Java Run-time" with download link. Even I have downloaded and successfully installed it on my MAC machine but it still shows me the same window.
It installed jre-7u10-macosx-x64.dmg but java -version is always point to 1.6.
Then I searched for Java Preferences to point the current JRE 1.7 but I could find Java Preferences at Applications -> Utilities -> Java -> Java Preferences.
I found an Java Icon on System Preference. When I am trying to open that widow it's showing me error -- the java control panel opens in a separate window and nothing happens when we click on Re-open the Java Control Panel.
http://avats.s3.amazonaws.com/JavaRunningError.txt
I would like to know -- how to run JavaFX jar with JRE7 on MAC OS Loin 10.7.5? Is their any other way to run the JavaFX application JAR with JRE7?To find a copy of LP7 you would need to look for a copy on eBay.. However, the protection method used with LP7 no longer functions so you cannot register it and therefore you cannot use it. unless you have already registered LP7 yourself in the past using the security key dongle provided
Any version of LP7 from a torrent would be an illegal (and most likely non working) version due to the protection that was used at that time... and so posting about it here, was not be wise.
So.. thats why my previous answer was so brief... Simply put, you cannot use LP7 unless you already have a validated and registered security dongle... even if you found a copy of LP7 somewhere
The only practical solution is to find some kind soul who already has a working version of LP7 installed, that you can send the projects to... for them to do the conversion for you.
I would, but I no longer have LP7 installed here on any of my testbed Macs... -
How to execute unix command in plsql block( urgent)
Hi All,
i want rename the unix folder to New name on update non_employee table . So, please give me idea how to use unix command here.... Please suggest me ASAP ... Its urgent
CREATE or REPLACE TRIGGER NON_EMPLOYEE_AftUpd_trg
AFTER UPDATE ON NON_EMPLOYEE
FOR EACH ROW
BEGIN
IF :new.DIST_LIVELINK_PATH <> :old.DIST_LIVELINK_PATH THEN
rename unixfolder1 to :new.dist_livelink_path.
end IF;
END;The solution will depend a lot on your Oracle version, which you forgot to mention ;)
btw shouldn't that be (in pseudocode)
rename :old.dist_livelink_path to :new.dist_livelink_pathotherwise it will always fail after the first time?
In Unix that would require the mv command. -
How to execute unix command line from cocoa?
how to execute unix command line from cocoa?
for example, if I want to call "ping" from cocoa, how should I do it? and how can I obtain the return value?
thank you.
Power G5 Quad Mac OS X (10.4.3)The following article may also help:
http://cocoadevcentral.com/articles/000025.php
Mihalis.
Dual G5 @ 2GHz Mac OS X (10.4.6) -
How to run execute immdiate with variables
Hi friends,
How to run execute immdiate with variables in v_stmt below?
I dont know how to declare the value of i here.
Set serveroutput on;
DECLARE
i VARCHAR (20);
v_stmt VARCHAR2 (100);
CURSOR c
IS
SELECT sqlid FROM temp1;
BEGIN
OPEN c;
LOOP
FETCH c INTO i;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.put_line (i);
v_stmt := 'select * from table(dbms_xplan.display_cursor('&i',null))'
execute immediate v_stmt;
END LOOP;
CLOSE c;
END;
/Regds,
Kunwar.You first need to use a bind variable (named ':v' in SQL statement in my example):
set serveroutput on;
DECLARE
i VARCHAR (20);
v_stmt VARCHAR2 (100);
CURSOR c
IS
-- modified for a quick test
SELECT sql_id FROM v$sql where child_number > 2;
BEGIN
OPEN c;
LOOP
FETCH c INTO i;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.put_line (i);
v_stmt := 'select * from table(dbms_xplan.display_cursor(:v,null))';
execute immediate v_stmt using i;
END LOOP;
CLOSE c;
END;
/However because your SELECT statement returns several rows you need to adapt your code to process all rows returned (as already suggested in first reply to your message).
Instead of using PL/SQL, I recommend to generate a SQL file using only SQL and then to run the generated SQL file.
For example:
spool edx.sql
set serveroutput on
declare
v_stmt varchar2(100);
v_q char(1):='''';
begin
dbms_output.put_line('spool edx.log');
for s in (select sql_id from v$sql where child_number >2)
loop
dbms_output.put_line('select * from table(dbms_xplan.display_cursor(' || v_q || s.sql_id || v_q || ',null));');
end loop;
dbms_output.put_line('exit');
end;
spool ofThis generates a SQL file similar to :
spool edx.log
select * from table(dbms_xplan.display_cursor('5rygsj4dbw6jt',null));
select * from table(dbms_xplan.display_cursor('5rygsj4dbw6jt',null));
select * from table(dbms_xplan.display_cursor('5rygsj4dbw6jt',null));
select * from table(dbms_xplan.display_cursor('fsbqktj5vw6n9',null));
select * from table(dbms_xplan.display_cursor('6q42j0018w7t8',null));
select * from table(dbms_xplan.display_cursor('a5mmhrrnpwjsc',null));
select * from table(dbms_xplan.display_cursor('3c1kubcdjnppq',null));
select * from table(dbms_xplan.display_cursor('3c1kubcdjnppq',null));
select * from table(dbms_xplan.display_cursor('9gkq7rruycsjp',null));
select * from table(dbms_xplan.display_cursor('f0wj261bm8snd',null));
select * from table(dbms_xplan.display_cursor('ab3swhv5g138y',null));
select * from table(dbms_xplan.display_cursor('6vgvyh4xw9c5g',null));
select * from table(dbms_xplan.display_cursor('ak5crjygnpk60',null));
select * from table(dbms_xplan.display_cursor('9p6bq1v54k13j',null));
select * from table(dbms_xplan.display_cursor('19x1189chq3xd',null));
select * from table(dbms_xplan.display_cursor('7sx5p1ug5ag12',null));
select * from table(dbms_xplan.display_cursor('730vdzhng6m6g',null));
select * from table(dbms_xplan.display_cursor('730vdzhng6m6g',null));
select * from table(dbms_xplan.display_cursor('0v3dvmc22qnam',null));
select * from table(dbms_xplan.display_cursor('0v3dvmc22qnam',null));
select * from table(dbms_xplan.display_cursor('a1zv6wju3ftgv',null));
select * from table(dbms_xplan.display_cursor('7ng34ruy5awxq',null));
select * from table(dbms_xplan.display_cursor('7ng34ruy5awxq',null));
select * from table(dbms_xplan.display_cursor('b2gnxm5z6r51n',null));
select * from table(dbms_xplan.display_cursor('b2gnxm5z6r51n',null));
select * from table(dbms_xplan.display_cursor('g4gp07gt2z920',null));
select * from table(dbms_xplan.display_cursor('1gu8t96d0bdmu',null));
select * from table(dbms_xplan.display_cursor('g00cj285jmgsw',null));
select * from table(dbms_xplan.display_cursor('g00cj285jmgsw',null));
select * from table(dbms_xplan.display_cursor('g00cj285jmgsw',null));
select * from table(dbms_xplan.display_cursor('bn4b3vjw2mj3u',null));
select * from table(dbms_xplan.display_cursor('38243c4tqrkxm',null));
select * from table(dbms_xplan.display_cursor('2abjfnvy5rkyg',null));
select * from table(dbms_xplan.display_cursor('350f5yrnnmshs',null));
select * from table(dbms_xplan.display_cursor('350f5yrnnmshs',null));
select * from table(dbms_xplan.display_cursor('3s1yukp05bzg6',null));
select * from table(dbms_xplan.display_cursor('3s1yukp05bzg6',null));
select * from table(dbms_xplan.display_cursor('1tgukkrqj3zhw',null));
exit
PL/SQL procedure successfully completed.Edited by: P. Forstmann on 20 mars 2013 19:06
Edited by: P. Forstmann on 20 mars 2013 19:33 -
How to run hardware diagnostic with the help of terminal?
how to run hardware diagnostic with the help of terminal? any cmds
Macs newer than 10.7's release just need to boot with the 'D' key.
Otherwise you need to find the original installer disk of the Mac, or call AppleCare for it to be able to run the hardware diagnostic.
Maybe you are looking for
-
How to reinstall OS X 10.8 without internet?
Hey guys, I had a crash on my Macbook Air MD231 - Mid 2012, and my system won't boot, and unfortunately my friend erase my partition from disk utility. Now I have three question 1)my internet speed is very low, for re-installing I have to download a
-
I installed iTunes update on my pc running windows vista and now it will not open. Error message MSVCR80.dll missing???
-
Exception: Call of execute(String) is not allowed for PreparedStatement
Hi all, This query was run fine on SapDB 7.4 from Jave code using prepareStatement() method: declare id11216053819634 cursor for select sc.name, measuredobjectid id from serviceconditions sc, measuredobjects mo where sc.collectionid = mo.collectioni
-
Should I organise on import or later?
At the moment most of my photos are not in iPhoto, they are sort organised in folders by date/events, eg Holiday 10, Xmas 11 etc I have recently joined Crashplan, although I also use Time Machine. So at the moment CrashPlan isn't backing up them fold
-
Help me, sandbox validation
if an error occurs, SecurityError: Error #2070: at flash.display:: Stage / requireOwnerPermissions () at flash.display:: Stage / addEventListener () at VideoSurfaceManager / registerStage () at VideoSurfaceManager / onAddedToStage