我必须将classpath资源从一个包复制到另一个包.
我的计划是:
public static void main(String[] args) throws IOException, URISyntaxException {
ClassLoader classLoader = CopyFileToDirectoryTest.class.getClassLoader();
InputStream in = classLoader.getResourceAsStream("com/stackoverflow/main/Movie.class");
URI uri = ClassLoader.getSystemResource("com/stackoverflow/json").toURI();
Path path = Paths.get(uri.getPath(),"Movie.class");
System.out.println(path);
long copy = Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING);
System.out.println(copy);
}
Run Code Online (Sandbox Code Playgroud)
在Files.copy方法我得到异常:
Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 2: /D:/Programs/workspaceEE/HibernateDemo/target/classes/com/stackoverflow/json
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at java.nio.file.Paths.get(Paths.java:84)
at com.stackoverflow.main.CopyFileToDirectoryTest.main(CopyFileToDirectoryTest.java:34)
Run Code Online (Sandbox Code Playgroud)
怎么解决?
解
public static void main(String[] args) throws IOException, URISyntaxException {
ClassLoader classLoader = CopyFileToDirectoryTest.class.getClassLoader(); …Run Code Online (Sandbox Code Playgroud) 当我使用marven项目,编译项目时,出现下一个错误。我不知道为什么,希望有人能帮我解决问题,谢谢!
Servlet.service() for servlet [taotao-manager] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Method [getItemList] was discovered in the .class file but cannot be resolved in the class object] with root cause
java.lang.NoSuchMethodException: com.taotao.controller.ItemController.getItemList(java.lang.Integer, java.lang.Integer)
at java.lang.Class.getDeclaredMethod(Class.java:2130)
at org.springframework.core.LocalVariableTableParameterNameDiscoverer$LocalVariableTableVisitor.resolveMember(LocalVariableTableParameterNameDiscoverer.java:245)
at org.springframework.core.LocalVariableTableParameterNameDiscoverer$LocalVariableTableVisitor.visitEnd(LocalVariableTableParameterNameDiscoverer.java:231)
at org.springframework.asm.ClassReader.readMethod(ClassReader.java:1024)
at org.springframework.asm.ClassReader.accept(ClassReader.java:695)
at org.springframework.asm.ClassReader.accept(ClassReader.java:508)
at org.springframework.core.LocalVariableTableParameterNameDiscoverer.inspectClass(LocalVariableTableParameterNameDiscoverer.java:114)
at org.springframework.core.LocalVariableTableParameterNameDiscoverer.getParameterNames(LocalVariableTableParameterNameDiscoverer.java:73)
at org.springframework.core.PrioritizedParameterNameDiscoverer.getParameterNames(PrioritizedParameterNameDiscoverer.java:54)
at org.springframework.core.MethodParameter.getParameterName(MethodParameter.java:437)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:139)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.getNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:119)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:86)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:77)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:162)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:129)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
at …Run Code Online (Sandbox Code Playgroud) 我想将文件从一个包复制到另一个包.
我尝试了Files.copy方法,但它用复制的文件替换了我的文件夹.
public static void main(String[] args) throws IOException {
InputStream in = CopyFileToDirectoryTest.class.getClassLoader()
.getResourceAsStream("com/stackoverflow/main/Movie.class");
Path path = Paths.get("D://folder");
long copy = Files.copy(in, path,StandardCopyOption.REPLACE_EXISTING);
System.out.println(copy);
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它删除文件夹并创建文件夹名称的文件.
有没有办法在Java 8或我应该使用apache.commons.io?
我必须在/*和之间匹配文本*/.这些是java块注释.
现在我创建的程序不能按预期工作,因为它不会在关闭令牌时停止*/.这是代码:
public static void main(String[] args) {
String s = "public void /* sdksd\n*k/sss\\d\nsd */ main class\n/*String s = null;*/trtgg";
Matcher matcher = Pattern.compile("(?s)/\\*(.*)(?=\\*/)").matcher(s);
while (matcher.find()) {
String group = matcher.group(1);
System.out.println("group="+group);
}
}
Run Code Online (Sandbox Code Playgroud)
它打印:
group= sdksd
*k/sss\d
sd */ main class
/*String s = null;
Run Code Online (Sandbox Code Playgroud)
预期产出是:
group= sdksd
*k/sss\d
sd
group=String s = null;
Run Code Online (Sandbox Code Playgroud)
为什么它不会在第一次关闭令牌时停止*/?
有没有其他方法来实现这一目标?