All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.vnetpublishing.java.suapp.win.WinSudo Maven / Gradle / Ivy

There is a newer version: 0.0.5
Show newest version
package com.vnetpublishing.java.suapp.win;

import java.io.UnsupportedEncodingException;
import java.lang.management.ManagementFactory;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.sun.jna.WString;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.Kernel32Util;
import com.sun.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.ptr.IntByReference;
import com.vnetpublishing.java.suapp.ISudo;
import com.vnetpublishing.java.suapp.win.Kernel32X.JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
import com.vnetpublishing.java.suapp.win.Shell32X.SHELLEXECUTEINFO;

public class WinSudo implements ISudo 
{
	
	public static String escapeParam(String param) 
	{
		String parts[] = param.split("\\s+");
		if (parts.length < 2) {
			return param;
		}
		
		return String.format(
			"\"%s\"",
			param.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")
		);
	}
	
	private static String toParams(String[] params) 
	{
		StringBuilder sb = new StringBuilder();
		if (params.length > 0) {
			sb.append(params[0]);
		}
		for(int idx=1;idx pargs = new ArrayList(args.length + 2);
		
			String jcmd = System.getProperty("sun.java.command");
			
			if (jcmd == null || jcmd.length() < 1) {
				if (decodedPath.endsWith(".jar")) {
					pargs.add("-jar");
					pargs.add(decodedPath);
					
					if (args != null) {
						for(int idx=0;idx inputArguments = ManagementFactory.getRuntimeMXBean().getInputArguments();
				
				Iterator iap = inputArguments.iterator();
				while(iap.hasNext()) {
					pargs.add(iap.next());
				}
				

				
				String[] cmd = jcmd.split("\\s+");
				
				if (cmd.length > 0 && cmd[0].endsWith(".jar")) {
					pargs.add("-jar");
				}
				
				for(int idx=0;idx




© 2015 - 2025 Weber Informatics LLC | Privacy Policy