Tag: 路径

如何判断文件何时“完成”复制到监视目录?

我正在使用WatchService API来监视目录,并在用户开始将文件复制到目录中时获取ENTRY_CREATE事件。 我正在使用的文件可能很大,我想知道副本何时完成。 是否有任何内置的java API可用于实现此目的,或者我最好只是跟踪创建的文件的大小并在大小停止增长时开始处理? 编辑:这是我的示例代码: package com.example; import java.io.File; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; import java.nio.file.WatchService; public class Monitor { public static void main(String[] args) { try { String path = args[0]; System.out.println(String.format( “Monitoring %s”, path )); WatchService watcher = FileSystems.getDefault().newWatchService(); Path watchPath = FileSystems.getDefault().getPath(path); watchPath.register(watcher, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY); while […]

如何用Java 7中的nio替换File.listFiles(FileFilterfilter)?

我有一些用Java 6编写的文件I / 0遍历代码,试图将它移动到Java 7中的新I / O但我找不到任何替代这种东西。 File[] files = dir.listFiles(AudioFileFilter.getInstance()); 即,没有办法只过滤路径文件,它返回文件列表,所以我必须将每个文件转换为路径(file.toPath),如果我想限制在它调用的方法中使用File,这似乎相当费力。 我确实看过FileVisitor,但这似乎不允许你控制树的遍历方式,所以我认为它不适合我。 那么Java 7中的Path for File有多少替代品呢?

寻路2D Java游戏?

我目前正在根据Theme Hospital的想法编写一个非常基本的Java游戏。 我是Java的新手,我目前正在大学读书。 我已经做了近两年的Java,但是我终于把时间花在了一个体面的项目上。 我正处于需要创建一个人(病人)进入医院的阶段。 他们需要去接待处,然后去GP的办公室,然后回到他们的起始位置。 我已经研究过A *路径发现,但对我来说这似乎很复杂。 我理解它是如何工作的,但我不确定如何在游戏中实现它。 到目前为止,用户可以放置一个接待台,并建立一个GP的办公室。 这些中的每一个都具有“使用点”,这将是患者必须去的地方。 网格方块只能是满的,不会有不同的地形。 我对于粘贴任何代码都犹豫不决,因为它在过去的几个月中学习了很多与GUI相关的新技术,因为它很麻烦。 我的计划是到达里程碑1,让病人去办公桌然后离开办公室。 有了这个,我会更多地整理代码。 我见过许多A *和许多不同类型的实现。 有人可以给我一个我可以使用的起点吗? 我应该尝试调整已经编写的一组类,还是尝试从头开始编写自己的类?

用障碍物找到最短路径的算法

我有一个代表网格的点集合,我正在寻找一个能让我得到A点和B点之间最短距离的算法。任何点(不包括A和B)的捕获都会有阻碍路径的障碍,因此必须绕道而行。 路径可能不会以对角线移动。 对于任何想要解决此类问题的人,我发现这些引用非常有用: http://optlab-server.sce.carleton.ca/POAnimations2007/DijkstrasAlgo.html http://en.literateprograms.org/Dijkstra%27s_algorithm_%28Java%29#chunk%20def:visit%20each%20vertex%20u,%20always%20visiting%20vertex%20with%20smallest%20minDistance%20first

迭代java中一行/路径上的每个点

我是新手使用迭代器,并想知道如何迭代线段上的每个点(Line2D.Double,确切地说) – 我需要检查线上的每个点是否满足某些要求。 另外,给定一个路径对象(如GeneralPath),你会如何做同样的事情(遍历形状轮廓上的每个点)? 理想情况下,我喜欢这样的东西(有一条线或一条路径): Line2D line = new Line2D.Double(p1,p2); for (Point2D point : line) { point.callSomeMethod(); }

获取JAR文件的位置

我正在尝试从运行Runnable JAR文件获取该位置。 我试过了 try { String path = new java.io.File(“.”).getCanonicalPath(); } catch (IOException e) { e.printStackTrace(); } 但那会回来: C:\Users\Kevin\Desktop/server/Server 而JAR文件位于 C:\Users\Kevin\Desktop 我也尝试过 return new file(Server.class.getProtectionDomain().getCodeSource().getLocation().getPath()); 但那会回来: C:\Users\Kevin\Desktop\server.jar/server/Server 所以我基本上希望JAR文件的路径没有文件名而不是ClassPath。 这样做的任何方式?

Java – 通过2D数组的路径的最大总和

基本上我有一个与此类似的问题: 草坪植物花园由2D方形arrays代表。 每株植物(每种元素)都有许多草莓。 从arrays的左上角开始,您只能向右或向下移动。 我需要设计一个递归方法来计算通过花园的路径,然后输出哪一个产生最多的草莓。 我想我对真正非常简单的递归问题有所了解,但这个问题已经过去了。 就创建递归方法而言,我不确定从哪里开始或去哪里。 任何与代码相关的帮助或帮助我理解这个问题背后的概念都非常感谢。 谢谢。

为Eclipse设置正确的PATH

我最近改变了自己的路径,所以我可以在Head First Java书中继续学习,之前我有过Eclipse。 现在,当我再次尝试进入Eclipse时,它将无法打开,因为它说它无法在我的目录中找到要使用的JRE或JDK。 我已经移动了JDK文件。 我已经下载了jdk1.8.0_60。 那么我怎样才能让Eclipse再次打开?

加载相对于执行jar文件的文件

这个问题说明了一切。 我的特殊情况是当前的工作目录不是jar文件的位置,而是c:\Windows\system32 (我的jar文件是由windows使用右键菜单启动的,我想传递文件夹的路径为jar的参数)。 现在我想加载一个名为config.xml的配置文件,它与jar在同一个文件夹中。 当然,该文件的目的是为jar提供设置。 对我来说重要的是xml文件在jar文件之外以便于编辑。 我很难加载该文件。 Windows执行该行 cmd /k java -jar D:\pathToJarfile\unpacker-0.0.1-SNAPSHOT-jar-with-dependencies.jar 使用cmd /k调用整个事件会使windows命令提示符处于打开状态,以便我可以看到jar的输出。 我不能使用new File(“.”)或System.getProperty(“user.dir”)作为相对路径,因为这些函数返回C:\Windows\system32\. 和C:\Windows\system32分别(这是Windows执行AFAIK所有内容的工作文件夹)。 我对Launcher.class.getResourceAsStream(“/../config.xml”)也没有成功。 由于该路径以/开头,因此搜索从jar的根节点开始。 转到../config.xml指向该文件,但该调用返回null 。 有人能指出我正确的方向吗? 我真的被困在这里了。 这个文件加载的东西真的每次都让我烦恼…… 我自己的要求: 我不想在java源代码中硬编码路径 我不想将文件的路径作为参数传递给java -jar调用(既不作为main(String[] args)也不是使用-Dpath=d:\…来设置系统属性) 除了原来的问题,我还有很难将maven2放到Class-Path: . 进入MANIFEST.MF (BalusC发布的解决方案)时使用jar-with-dependencies 。 问题是该行出现在常规jar的MANIFEST文件中,但不是jar-with-dependencies.jar的MANIFEST文件(生成了2个jar文件)。 对于任何关心我如何做的人: maven-assembly-plugin 2.2-beta-5 ${mainClass} true <!–at first, i tried to place the Class-Path entry right here using . see […]

在Windows 10中设置环境变量以使用java和javac

我有一台带有windows 10的新笔记本电脑,我想设置它,所以我可以从命令行使用java和javac 。 我在网上搜索过,但是所有的指南都是针对以前的版本,而且我不想搞乱一些我不理解的东西。