Command Line sytnax

Discussion in 'Mac Programming' started by China Diapers, Apr 16, 2011.

  1. China Diapers, Apr 16, 2011
    Last edited by a moderator: Apr 16, 2011

    macrumors newbie

    Joined:
    Feb 26, 2011
    Messages:
    4
    #1
    Hi,

    I am trying to run a java solution remotely on a server, I am using the below command in the terminal:

    Confidential info hidden with x's.

    But am getting the below error:

    Could this be a syntax error?

    Thanks

    OK, on further inspection, the shellscript seems to rely on some batch files:

    Contents of which are:

    Do you think it would help to rewrite these as bash files?
     
  2. jiminaus, Apr 16, 2011
    Last edited: Apr 16, 2011

    macrumors 65816

    jiminaus

    Joined:
    Dec 16, 2010
    Messages:
    1,448
    Location:
    Sydney
    #2
    The direct port of these batch files to bash scripts would be, respectively:

    Code:
    export CLASSPATH=RemoteShell.jar
    java RemoteShellServer $1 $2
    
    Code:
    export CLASSPATH=RemoteShell.jar
    java RemoteShellClient $1 $2 $3 $4
    
    Code:
    javac -g:none *.java
    jar cvf RemoteShell.jar *.class
    
    But you seem to be by-passing them by using java RemoteShellClient directly from the command line. So I don't think they're the cause of your error.

    According to JavaClient.bat (now the JavaClient bash script), RemoteShellClient expects 4 arguments. From the look of the command your trying to use, these arguments are: 1) the IP address of the remote computer, 2) the port of the remote computer, 3) the command to run on the remote computer, 4) the arguments to be passed to the remote command. The remote command and argument suggests that the remote computer is running Windows. Is that the case?

    Do you know where the error is coming from? I've not seen bash output this error, so I doubt it's coming from there. Is there other output to suggest it's coming from RemoteShellClient, or from the remote computer?
     
  3. chown33, Apr 16, 2011
    Last edited: Apr 16, 2011

    macrumors 603

    Joined:
    Aug 9, 2009
    Messages:
    6,404
    #3
    This command won't work.

    The pathname to the jar file must immediately follow the -jar option, like this:
    Code:
    java -jar C:\BetInTime.jar  -Dusername=xxx -Dpassword=xxx -DcCodes=all ServiceSF"
    
    or this:
    Code:
    java -Dusername=xxx -Dpassword=xxx -DcCodes=all -jar C:\BetInTime.jar ServiceSF"
    

    Based on the batch files, I'm not convinced that -jar is the option to use. -cp may be better suited, if you're expecting to run the ServiceSF class. Example:
    Code:
    java -cp C:\BetInTime.jar  -Dusername=xxx -Dpassword=xxx -DcCodes=all ServiceSF"
    
     
  4. macrumors 68020

    pilotError

    Joined:
    Apr 12, 2006
    Messages:
    2,234
    Location:
    Long Island
    #4
    Wouldn't it be easier to wrap the command in a bash script and do an rexec to execute it remotely?
     
  5. macrumors 6502

    Joined:
    Feb 7, 2008
    Messages:
    272
    #5
    Code:
    java RemoteShellClient 87.120.209.147 50001 "cmd" "java -jar -Dusername=xxx -Dpassword=xxx -DcCodes=all C:\BetInTime.jar ServiceSF" 
    I would break troubleshooting this into two parts:

    1. Test that you can remotely execute a command by doing something trivial. Perhaps like this:

    Code:
    java RemoteShellClient 87.120.209.147 50001 "cmd" "echo testfile > testfile.txt" 
    Assuming that the RemoteShell server is running, has correct permissions to write somewhere, and you know where that somewhere is you should see a testfile.txt created there. If this doesn't work, then you need to check the server config.

    2. Locally run the BetInTime.jar file on the server to verifiy it works properly and that the command arguments are correct. From the C:\ prompt on the server:
    Code:
     java -jar -Dusername=xxx -Dpassword=xxx -DcCodes=all C:\BetInTime.jar ServiceSF
    If that doesn't work, you need to figure out why, and adjust the command so it does.
     

Share This Page