content: package com.antfortune.freeline.idea.utils;
  
  import com.intellij.openapi.util.SystemInfo;
  
  import java.awt.*;
  import java.awt.event.KeyEvent;
  import java.io.IOException;
  import java.net.URI;
  import java.net.URISyntaxException;
  
  /**
   * Created by pengwei on 16/9/11.
   */
  public final class Utils {
  
      public static final String BREAK_LINE = System.getProperty("line.separator");
  
      /**
       * 获取python安装目录
       *
       * @return
       */
      public static String getPythonLocation() {
          Process process = null;
          try {
              process = Runtime.getRuntime().exec(new String[]{"python", "--version"});
              if (process.waitFor() == 0) {
                  return "python";
              }
          } catch (Exception e) {
          }
          try {
              if (!SystemInfo.isWindows) {
                  process = Runtime.getRuntime().exec(new String[]{"whereis", "python"});
                  if (process != null && process.getInputStream() != null) {
                      String result = StreamUtil.inputStream2String(process.getInputStream());
                      if (notEmpty(result)) {
                          return result;
                      }
                  }
              }
          } catch (IOException e) {
          }
          return null;
      }
  
      public static boolean notEmpty(String text) {
          return (text != null && text.trim().length() != 0);
      }
  
      /**
       * 打开浏览器
       *
       * @param url
       */
      public static void openUrl(String url) {
          if (SystemInfo.isWindows) {
              try {
                  Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
              } catch (IOException e) {
                  e.printStackTrace();
              }
          } else {
              try {
                  URI uri = new URI(url);
                  Desktop desktop = null;
                  if (Desktop.isDesktopSupported()) {
                      desktop = Desktop.getDesktop();
                  }
                  if (desktop != null)
                      desktop.browse(uri);
              } catch (IOException ioe) {
                  ioe.printStackTrace();
              } catch (URISyntaxException e) {
                  e.printStackTrace();
              }
          }
      }
  
      /**
       * 模拟键盘输入
       * @param r
       * @param key
       */
      public static void keyPressWithCtrl(Robot r, int key) {
          if (r == null) {
              return;
          }
          r.keyPress(KeyEvent.VK_CONTROL);
          r.keyPress(key);
          r.keyRelease(key);
          r.keyRelease(KeyEvent.VK_CONTROL);
          r.delay(100);
      }
  
  }
  