Java 为什么我不能删除文件?

Java 为什么我不能删除文件?,java,locking,Java,Locking,我不明白为什么Java不想删除这个文件! 我基本上想锁定一个文件,以避免我的jar文件可以启动多次。然后在操作完成后,我想删除锁文件,但由于某些原因,这似乎是不可能的 代码如下: package footballQuestioner; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.Toolkit; import java.awt.ima

我不明白为什么Java不想删除这个文件! 我基本上想锁定一个文件,以避免我的jar文件可以启动多次。然后在操作完成后,我想删除锁文件,但由于某些原因,这似乎是不可能的

代码如下:

package footballQuestioner;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class attempter 
{
    public static void main(String[] args) throws FileNotFoundException, IOException 
    {
        Ausgabe ausGabe=new Ausgabe();
    }

    class Ausgabe  
    {
        public Ausgabe() 
        {
           tryToStart();
        }

        public boolean tryToStart(){

            File file1=new File("C:\\Users\\laudatio\\Downloads\\erzFeind.txt");
            RandomAccessFile in=null;
            FileLock fileLock=null;
            file1.setWritable(true);

            try 
            {
               file1.createNewFile();
               in = new RandomAccessFile(file1, "rw");
               fileLock = in.getChannel().tryLock();

               if(fileLock == null)
                 return false;


            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }

        file1.delete();

        return true;
}

}无法删除已打开的文件。这是Windows的一个限制。你必须先把它关上。试一试

file1.close();
file1.delete();

注意:Unix没有这样做,它不是Java的“功能”

您是否尝试过1-确保文件存在,2-释放文件锁?是的,文件存在-我如何释放锁?,这可能在
try catch
finally
部分中…请确保检查文件是否为空。createNewFile()电话是多余的。是的,就是这样!我必须关闭随机访问文件!