java程序直接运行没有问题,但是debug就有错误,
在eclipse中debug,程序报错而且程序启动不起来,debug报错如下:
2018-09-04 23:03:30.103 INFO 1196 --- [ main] com.trs.dataMigration.Application : Starting Application on DESKTOP-O3G834A with PID 1196 (started by ���S in E:\JavaTRS项目\dataMigrate)
2018-09-04 23:03:30.130 INFO 1196 --- [ main] com.trs.dataMigration.Application : No active profile set, falling back to default profiles: default
2018-09-04 23:03:30.335 INFO 1196 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5b6cb210: startup date [Tue Sep 04 23:03:30 CST 2018]; root of context hierarchy
2018-09-04 23:03:35.300 INFO 1196 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$54b7a4db] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-09-04 23:03:36.236 WARN 1196 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\���S\AppData\Local\Temp\
2018-09-04 23:03:36.261 ERROR 1196 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\���S\AppData\Local\Temp\
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at com.trs.dataMigration.Application.main(Application.java:17) [classes/:na]
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\���S\AppData\Local\Temp\
at org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactory.createTempDir(AbstractEmbeddedServletContainerFactory.java:183) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:156) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:160) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
... 8 common frames omitted
Caused by: java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_67]
at java.io.File.createNewFile(File.java:1006) ~[na:1.7.0_67]
at java.io.File.createTempFile(File.java:1989) ~[na:1.7.0_67]
at java.io.File.createTempFile(File.java:2040) ~[na:1.7.0_67]
at org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactory.createTempDir(AbstractEmbeddedServletContainerFactory.java:174) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
... 11 common frames omitted
求大佬解救!!!
在eclipse中debug,报错而且程序无法启动;
但是在idea中debug,虽然报错但程序能启动成功!
idea中的报错(能启动成功!):
Connected to the target VM, address: '127.0.0.1:53907', transport: 'socket' Capture agent: unable to read settings java.io.FileNotFoundException: C:\Users\ÒãØS\AppData\Local\Temp\capture1.props (系统找不到指定的路径。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at java.io.FileInputStream.<init>(FileInputStream.java:101) at java.io.FileReader.<init>(FileReader.java:58) at com.intellij.rt.debugger.agent.CaptureAgent.readSettings(CaptureAgent.java:93) at com.intellij.rt.debugger.agent.CaptureAgent.premain(CaptureAgent.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
路径不要写中文,指不定会出啥问题。boot版本换成1.5.6试试?把中文路径改成英文试试?
那个中文是我电脑本地账户名称
是不是 流没关。将代码try ..catch。。finally{}; fianlly里关流
根据报错提示,是路径有问题,既然电脑本地账户是中文名称,那我建议你把代码中的路径写成相对路径应该能解决上述问题。
这个问题我遇到过,eclipse debug路径不能带中文,会报乱码,识别不了。建议把项目放到全英文路径下,不要带特殊字符
这个和项目路径没关系吧,我把项目路径改为全英文还是不行,这个是电脑本地账户是中文名称的原因。
@毅豐: 项目路径是你项目放在哪,你这个文件的绝对路径就是项目路径,你这路径看控制台你的项目不就是放在 c:/users/你的名字/.... 之类的吗? 很明显这个乱码就是你电脑的用户名啊,你的用户名就是中文,所以报错啊。你新建项目肯定是用的默认的项目路径 c:/users/你的名字/appdata...之类的,应该自己自定义一个
@韦艾薇薇: 我的项目就放在我自定义的路径下,项目路径(E:\JavaTRSEclipse\dataMigrate),乱码的那个东西java.io.tmpdir我查了一下好像是系统临时文件,具体的不太清楚(网上好多东西都是一样滴,看不懂),能不能解释一下,谢谢啦!
好吧,我觉得这个问题就是因为电脑的本地账户是中文,导致文件路径乱码,debug出错!
– 毅豐 6年前