java中的getscheme_“ java.lang.IllegalArgumentException:uri.getScheme()== null!使用JavaFX播放音频时发生错误”
时间: 2024-03-11 07:43:32 浏览: 126
这个错误通常是由于URI没有正确解析导致的。在JavaFX中,使用MediaPlayer播放音频时,需要传入一个有效的URI地址,否则就会报出这个错误。
首先,请检查传入MediaPlayer的URI地址是否正确。如果不正确,可以尝试使用其他地址。如果URI地址正确,但是仍然出现这个错误,可以尝试使用Java中的URL类来解析URI地址。具体代码如下:
```
String uriString = "your_uri_string_here";
URI uri = new URI(uriString);
if (uri.getScheme() == null) {
URL url = new URL(uriString);
uri = url.toURI();
}
// 使用uri来创建MediaPlayer
MediaPlayer mediaPlayer = new MediaPlayer(new Media(uri.toString()));
```
这样,就可以使用Java中的URL类来解析URI地址,解决"java.lang.IllegalArgumentException: uri.getScheme() == null!"错误。
相关问题
org.apache.jasper.JasperException: 在 [5] 行处理 [/welcome.jsp] 时发生异常 2: <% 3: String path = request.getContextPath(); 4: String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5: request.getRequestDispatcher("index.do").forward(request, response); 6: //response.sendRedirect(""); 7: %>
这个异常是在JSP页面中出现的,可能是因为在JSP页面中的某行代码出现了异常导致的。在这个异常信息中,[5] 行指的是在 welcome.jsp 页面的第 5 行出现了问题,异常信息中的代码是 request.getRequestDispatcher("index.do").forward(request, response);,这个代码的作用是将请求转发到 index.do 页面。
根据信息来看,可能是因为 index.do 页面不存在或者出现了异常导致的。你可以检查一下 index.do 页面是否存在,并且检查一下 index.do 页面中的代码是否有问题。如果 index.do 页面存在且代码没有问题,那么就需要进一步检查其他可能出现问题的地方。
<%@ taglib prefix="t" uri="/easyui-tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; %> <c:set var="webRoot" value="<%=basePath%>" />
这段代码是一个 JSP 页面的头部,它引入了一些标签库,包括 easyui-tags、jstl/core、jstl/functions 和 jstl/fmt_rt。同时,它也定义了一个名为 webRoot 的变量,它的值是通过获取请求的上下文路径和服务器信息拼接而成的。这个变量可以方便地在页面中使用,例如在引入 CSS 或 JS 文件时可以使用 ${webRoot} 替代绝对路径。
阅读全文