Skip to Content
Technical Articles
Author's profile photo Joerg Aldinger

Run SAP Customer Checkout on Linux

Hello everybody!

It has been a while now that I have wanted to try to run CCO on Linux. So I finally came around to give it a go. Here is what I did and the result.

  1. Installed SUSE Linux Enterprise Desktop 15 SP2 (but I guess any Linux distro would be equally fine).
    I installed it on Hyper-V since I had that at hand. I assigned 4GB RAM and 20GB hard disk space and otherwise went with all the defaults. I went with the “minimal desktop experience”, that does not include office applications or a whole lot of other bells and whistles.
  2. Ran Firefox to download Google Chrome and set that as the new default
  3. Downloaded SAPMachine JRE 11 and installed that to /usr/lib64:
    tar -xvf sapmachine-jre-11.0.8_linux-x64_bin.tar.gz
    sudo mv sapmachine-jre-11.0.8 /usr/lib64​
  4. Downloaded CCO 2.0 FP10 PL00 on my Windows machine, prepared the “update file” like I normally would for upload to CCOM (PowerShell):
    $downloaded_file = "SAPCUSCHK10_0-70001338.ZIP";
    $shortname = $downloaded_file.Split('-')[0];
    Expand-Archive $downloaded_file -DestinationPath $shortname;
    & 'C:\Program Files\WinRAR\WinRAR.exe' x ".\$shortname\SapCustomerCheckout_2_0.exe" ($shortname + '_extracted\') | Out-Null;
    Compress-Archive -Path ($shortname + '_extracted\CustomerCheckout\*') -DestinationPath ($shortname + '.zip');
    Remove-Item ($shortname) -Force -Recurse;
    Remove-Item ($shortname + '_extracted\') -Force -Recurse;​
  5. Moved the resulting file to my Linux machine and uncompressed to /SAPCustomerCheckout:
    sudo mkdir /SAPCustomerCheckout
    sudo chown joerg. /SAPCustomerCheckout
    unzip -d /SAPCustomerCheckout​
  6. Finally, with all the files in place, I ran the application (command based on run.bat and adapted to Linux environment):
    /usr/lib64/sapmachine-jre-11.0.8/bin/java -client -Xms128m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:MaxMetaspaceSize=256m -Djava.util.logging.config.file="/SAPCustomerCheckout/cco/conf/" -Dlog4j.configuration="file:/SAPCustomerCheckout/cco/conf/" -Dredeploy=false -DupdateDone=false -Dfile.encoding=UTF-8 -Dapp.home="/SAPCustomerCheckout/" -Djava.library.path=/SAPCustomerCheckout/cco/lib -Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger -cp "/SAPCustomerCheckout/cco/lib/*;/SAPCustomerCheckout/ENV.jar;/SAPCustomerCheckout/cco/POSPlugins/Translations;" -splash:splash.png -javaagent:ENV.jar​

And the result is:



I hope this post inspires a few people to try this exercise and to take a look at a couple of the error messages produced in the console (yes, there are a couple, but I haven’t seen any “critical”). Maybe even migrate the “run.bat” to a fully-fledged “” on Linux.

And maybe, just maybe, the CCO team might even decide to support Linux officially in the future. Or at least publish their MacOS installation steps, which I know exist, so we can compare them to these… 🙂

Comments are welcome!

Best regards,



Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Joerg Aldinger
      Joerg Aldinger
      Blog Post Author

      So, I fixed one of the error messages in the terminal by linking the "incorrect" directory to the "correct" directory. There seems to be a missing (back-)slash in the code that causes this, or the parsing of paths is different on Linux:

      sudo ln -s /SAPCustomerCheckout/cco /SAPCustomerCheckoutcco



      Author's profile photo Robert Zieschang
      Robert Zieschang

      Thanks for sharing Joerg Aldinger

      Author's profile photo Joerg Aldinger
      Joerg Aldinger
      Blog Post Author

      So I followed the same process on a SUSE Linux Enterprise Server 15 SP2 in Azure and then published the application using an nginx reverse proxy. It basically works, but I haven't tried a lot of operations.

      Here's the result, CCO running from a linux based cloud server in tablet mode: