小编Jay*_*ith的帖子

线程"main"中的异常java.nio.file.InvalidPathException:索引2处的非法char <:>:

我必须将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)

java nio

14
推荐指数
3
解决办法
3万
查看次数

为什么错误表明 Method 是在 .class 文件中发现的,但无法在 class object] 中解析,其根本原因是什么?

当我使用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)

java illegalstateexception

5
推荐指数
1
解决办法
4768
查看次数

如何将文件复制到java 8中的另一个目录?

我想将文件从一个包复制到另一个包.

我尝试了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 nio

2
推荐指数
1
解决办法
9050
查看次数

如何匹配java正则表达式中注释块之间的文本?

我必须在/*和之间匹配文本*/.这些是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)

为什么它不会在第一次关闭令牌时停止*/

有没有其他方法来实现这一目标?

java regex

0
推荐指数
1
解决办法
282
查看次数

标签 统计

java ×4

nio ×2

illegalstateexception ×1

regex ×1