使用Java代码打开浏览器,打开本地应用程序 java RunTime 使用 RunTime打开浏览器

   使用Java代码打开浏览器,打开本地应用程序 java RunTime 使用 RunTime打开浏览器

一、打开浏览器

    /**
	 * description: 使用Java代码打开浏览器 browser --- RunTime 类打开
	 * @throws Exception
	 * @return void
	 * @version v1.0
	 * @author w
	 * @date 2019年8月11日 下午1:37:01
	 */
	@Test
	public void browser () throws Exception {
		// 浏览器要打开的链接URL
		String url = "https://www.baidu.com/";
		// 获取操作系统的名字
		String osName = System.getProperty("os.name");
		if (osName.startsWith("Mac OS")) {
			// 操作系统为 Mac (苹果电脑)
			Class<?> fileMgr = Class.forName("com.apple.eio.FileManager");
			Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });
			openURL.invoke(null, new Object[] { url });
		} else if (osName.startsWith("Windows")) {
			// 操作系统为 Windows
			Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
		} else {
			// 操作系统为 Linux 或 Unix
			String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" };
			String browser = null;
			for (int count = 0; count < browsers.length && browser == null; count++) {
				// 执行代码,在brower有值后跳出,
				// 这里是如果进程创建成功了,==0是表示正常结束。
				if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0) {
					browser = browsers[count];
				}
			}
			if (browser == null) {
				throw new Exception("Could not find web browser");
			} else {
				// 这个值在上面已经成功的得到了一个进程。
				Runtime.getRuntime().exec(new String[] { browser, url });
			}
		}
	}

二、获取返回值

   /**
	 * description: 获取java RunTime 执行进程的返回值
	 * @return void
	 * @version v1.0
	 * @author w
	 * @throws IOException
	 * @date 2019年8月10日 下午9:20:21
	 */
	@Test
	public void test() throws IOException {
		 	// ipconfig.bat 代码是: ipconfig/all
	//	Process process = Runtime.getRuntime().exec("C:\\Users\\Administrator\\Desktop\\ipconfig.bat");
		// 获取并返回文件的MD5值
		Process process = Runtime.getRuntime().exec("certutil -hashfile C:\\Users\\Administrator\\Desktop\\id_card.jpg MD5");
		// 获取返回的输入流
		InputStream inputStream = process.getInputStream();
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "GBK"));
		String line;
		StringBuffer stringBuffer = new StringBuffer();
		while ((line = bufferedReader.readLine()) != null) {
			stringBuffer.append(line).append("\r\n");
		}
		bufferedReader.close();
		System.out.println(stringBuffer.toString());
		System.out.println("over ...");
	}

三、打开cmd窗口、执行某一个bat脚本

    /**
	 * description: 打开cmd窗口、执行某一个bat脚本
	 * @throws IOException
	 * @return void
	 * @version v1.0
	 * @author w
	 * @date 2019年8月11日 下午1:51:41
	 */
	@Test
	public void testCMD() throws IOException {
		// 打开 cmd 窗口
	//	String[] cmds = { "cmd", "/C", "start"};
		// 执行 ipconfig.bat 脚本, 里面代码为: ipconfig/all 
		String[] cmds = { "cmd", "/C", "start C:\\Users\\Administrator\\Desktop\\ipconfig.bat"};
		Runtime.getRuntime().exec(cmds);
		// 打开计算器
	//	Runtime.getRuntime().exec("calc");
		// 系统的CPU数量
		int count = Runtime.getRuntime().availableProcessors();
		System.out.println("系统的CPU数量: " + count);
	}
发布了156 篇原创文章 · 获赞 159 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/HaHa_Sir/article/details/99187321
今日推荐