Sample code for 30+ languages & platforms
Java

Setting Environment Variables for SCP Transfers

See more SCP Examples

Demonstrates how to set remote environment variables for an SCP transfer.

Note 1: This example requires Chilkat v9.5.0.79 or greater.

Note 2: Setting environment variables for SCP is only supported by some SSH servers.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Scp;
import com.chilkatsoft.chilkat2.Ssh;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Ssh ssh = new Ssh();

        // First connect to an SSH server.
        try {
            ssh.connect("example.com", 22);

            // Wait a max of 5 seconds when reading responses..
            ssh.setIdleTimeoutMs(5000);

            // Authenticate..
            ssh.authenticatePw("myLogin", "myPassword");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // After the SSH object is connected and authenticated, we use it
        // as the underlying transport in our SCP object.
        Scp scp = new Scp();

        try {
            scp.useSsh(ssh);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Specify the environment variables to be set in JSON as follows.
        // This example sets two environment variables.  One is named "LCS_PASSWORD" and the other "MY_TEST_NAME".
        JsonObject jsonEnvVars = new JsonObject();
        jsonEnvVars.setEmitCompact(false);
        jsonEnvVars.updateString("LCS_PASSWORD", "secret");
        jsonEnvVars.updateString("MY_TEST_NAME", "abc");
        String strEnvVars = jsonEnvVars.emit();

        System.out.println(strEnvVars);

        // Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
        // prior to doing the upload or download.
        scp.setSendEnv(strEnvVars);

        // Do the upload..
        String remotePath = "starfish.jpg";
        String localPath = "qa_data/jpg/starfish.jpg";
        try {
            scp.uploadFile(localPath, remotePath);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("SCP upload file success.");

        // Disconnect
        ssh.disconnect();
    }
}