问题描述
报错信息如下:java.io.IOException: Cannot run program "ipconfig": java.io.IOException: error=2, No such file or directoryat java.lang.ProcessBuilder.start(ProcessBuilder.java:460)at java.lang.Runtime.exec(Runtime.java:593)at java.lang.Runtime.exec(Runtime.java:431)at java.lang.Runtime.exec(Runtime.java:328)at com.logistics.logistics.common.SystemTool.getWindowsMACAddress(SystemTool.java:76)at com.logistics.logistics.web.auth.LoginAction.loginCheck(LoginAction.java:213)at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at com.logistics.logistics.web.UserUessionFilter.doFilter(UserUessionFilter.java:61)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)at java.lang.Thread.run(Thread.java:662)Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directoryat java.lang.UNIXProcess.<init>(UNIXProcess.java:148)at java.lang.ProcessImpl.start(ProcessImpl.java:65)at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)... 37 morelinux下只有ifconfig,所以运行ipconfig会报错。网上有人说是引用的包的问题,有没有朋友遇到过此问题,还请教如何解决
解决方案
at com.logistics.logistics.common.SystemTool.getWindowsMACAddress(SystemTool.java:76) 这里已经打出错误原因了!可以通过System.getProperty("os.name")判断系统类型,如果是windows就用ipconfig、linux就用ifconfig
解决方案二:
Cannot run program "ipconfig": java.io.IOException: error=2, No such file or directory linux下只有ifconfig,所以运行ipconfig会报错。 是的 你需要修改下 at com.logistics.logistics.common.SystemTool.getWindowsMACAddress(SystemTool.java:76) 可以考虑根据系统环境自动选择 是ifconfig 还是ipconfig