java程序中指定某个浏览器打开网址或应用程序

今天,发现jdk中有两个比较有意思的类。

一个是DeskTop类(桌面类),还有一个是Runtime类(运行时类)

通常我们的javaweb项目都是放在tomcat服务器上,通过servlet来启动,不过今天我要说的是在java代码中就能打开浏览器或是其他的一些应用程序【先通过System类的getenv方法拿到环境变量的值,再去循环遍历出自己要打开的的应该程序的路径。】。而上面这两个类都是支持的。那我在这里呢,跟大家分享两个小方法;

顺便给附上jdk的API:https://docs.oracle.com/javase/8/docs/api/

哈哈!平时多几点单词,有用的文档大多是英文版噢。

String browser = "C:\\Program Files (x86)\\Tencent\\QQBrowser\\QQBrowser.exe";

String url = "https://www.baidu.com/";

一、使用main方法打开网址【默认浏览器】传入需要打开的网址

/**
	 * 使用默认浏览器
	 * 
	 * @author WHD
	 * @date 2018年12月11日 下午3:46:30
	 */
	public static void OpenBrowser(String url){
		if (Desktop.isDesktopSupported()) {
			try {
				// 创建一个URI实例
				java.net.URI uri = java.net.URI.create(url);
				// 获取当前系统桌面扩展
				Desktop dp = Desktop.getDesktop();
				// 判断系统桌面是否支持要执行的功能
				if (dp.isSupported(Desktop.Action.BROWSE)) {
					// 获取系统默认浏览器打开链接
					dp.browse(uri);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

二、这个第二种打开浏览器的方法呢,支持指定浏览器

/**
	 * 使用Runtime类
	 *  
	 * 
	 * @author WHD
	 * @date 2018年12月11日 下午3:44:56
	 */
	public static void OpenBrowser(String url,String browser){
		try {
			Runtime.getRuntime().exec(new String[] {browser, url });
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

 

### 回答1: 以下是一个Java滑动验证的示例代码,使用了Selenium WebDriver库和ChromeDriver驱动程序。请注意,此示例假定您已经安装了Chrome浏览器和ChromeDriver驱动程序,并将其添加到您的系统路径。 ```java import org.openqa.selenium.By; import org.openqa.selenium.Point; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class SlideVerification { public static void main(String[] args) { //设置ChromeDriver路径 System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); //创建一个ChromeDriver实例 WebDriver driver = new ChromeDriver(); //打开目标网站 driver.get("https://www.target-website.com"); //等待页面加载完成 try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } //找到滑块元素 WebElement slider = driver.findElement(By.xpath("//div[@class='slider']")); //获取滑块的起始位置 Point startPoint = slider.getLocation(); //获取滑块的宽度 int sliderWidth = slider.getSize().getWidth(); //将滑块拖动到目标位置 Actions actions = new Actions(driver); actions.clickAndHold(slider).moveByOffset(sliderWidth, 0).release().perform(); //关闭浏览器 driver.quit(); } } ``` 请注意,这只是一个基本示例代码,您需要根据目标网站的实际情况进行修改。例如,您需要找到正确的滑块元素,并获取其起始位置和宽度。您还需要根据实际情况调整滑块的移动距离和速度,以确保它能够成功通过验证。 ### 回答2: 滑动验证是一种常见的验证码验证方式,目的是通过用户滑动滑块来验证用户是否为真实用户,而不是机器人。下面是一个使用Java实现滑动验证的示例代码: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SlideVerificationExample { public static void main(String[] args) { JFrame frame = new JFrame("滑动验证码示例"); frame.setSize(500, 300); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JLabel label = new JLabel("请按住滑块,拖动到最右边完成验证"); panel.add(label, BorderLayout.NORTH); JPanel slidePanel = new JPanel(); slidePanel.setPreferredSize(new Dimension(400, 100)); slidePanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); JPanel slider = new JPanel(); slider.setPreferredSize(new Dimension(100, 80)); slider.setBackground(Color.GRAY); slider.addMouseListener(new MouseAdapter() { private int startX; @Override public void mousePressed(MouseEvent e) { startX = e.getX(); } @Override public void mouseReleased(MouseEvent e) { int endX = e.getX(); if (endX - startX >= 300) { label.setText("验证通过"); } else { label.setText("验证失败,请重新滑动"); } } }); slider.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { int offsetX = e.getX() - startX; int newX = slider.getX() + offsetX; if (newX < 0) { newX = 0; } else if (newX > slidePanel.getWidth() - slider.getWidth()) { newX = slidePanel.getWidth() - slider.getWidth(); } slider.setLocation(newX, slider.getY()); startX = e.getX(); } }); slidePanel.add(slider); panel.add(slidePanel, BorderLayout.CENTER); frame.add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` 上述代码使用Java的AWT和Swing库来创建一个简单的滑动验证示例。它创建了一个包含滑动条的窗口,用户需要按住滑块并拖动到最右边,以验证身份。通过监听鼠标事件和计算滑动块的位置,来判断用户是否成功完成验证。 滑块位置的检测通过鼠标事件的坐标信息来实现。当鼠标松开,根据滑块的起始位置和结束位置的差值,来判断用户滑动的距离是否达到指定的阈值。如果达到阈值,则验证通过,否则验证失败。 以上是一个简单的滑动验证的Java代码示例,可以根据实际需求进行更加复杂的功能扩展和美化设计。 ### 回答3: Java滑动验证代码实例通常用于网站或应用程序的验证码功能,以防止机器或自动化程序的非法访问。 以下是一个简单的Java滑动验证代码实例: ```java import java.awt.*; import javax.swing.*; public class SliderVerification extends JFrame { private JPanel contentPane; private JLabel sliderLabel; private JSlider slider; private JButton verifyButton; public SliderVerification() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 400, 200); setTitle("滑动验证"); contentPane = new JPanel(); setContentPane(contentPane); contentPane.setLayout(null); sliderLabel = new JLabel("请拖动滑块完成验证"); sliderLabel.setBounds(120, 30, 200, 30); contentPane.add(sliderLabel); slider = new JSlider(); slider.setPaintTicks(false); slider.setMinimum(0); slider.setMaximum(100); slider.setValue(0); slider.setBounds(120, 70, 200, 30); contentPane.add(slider); verifyButton = new JButton("验证"); verifyButton.setBounds(160, 120, 80, 30); contentPane.add(verifyButton); verifyButton.addActionListener(e -> { if (slider.getValue() >= 80) { JOptionPane.showMessageDialog(null, "验证成功", "提示", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "验证失败", "提示", JOptionPane.ERROR_MESSAGE); } }); } public static void main(String[] args) { EventQueue.invokeLater(() -> { try { SliderVerification frame = new SliderVerification(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } }); } } ``` 这个例子创建了一个简单的窗口,其包含一个滑块、一个标签以及一个验证按钮。用户需要拖动滑块来滑到某个特定位置,然后点击验证按钮来进行验证。如果滑块的值大于等于80,将会提示“验证成功”,否则将会提示“验证失败”。 请注意,这只是一个简单的示例,实际应用的滑动验证可能还需要结合其他技术,如生成验证码图片、前端后台交互等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值