2013-04-08 38 views
2

我正在嘗試安裝PhpStorm,並且在看了一段很長的故事之後,它看起來像是我有一些不好的字體在使用Java。字體文件不會刪除

我完全不熟悉Java,但是我發現此代碼循環訪問我的字體並找到不好的字體。我修改了它來刪除壞字體,但不會刪除。

import java.io.File; 
import java.awt.Font; 
import java.awt.GraphicsEnvironment; 

public class myFontCheck { 
    public static void main(String[] args) { 
    Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); 
    for (int i = 0; i < fonts.length; i++) { 
     final Font font = fonts[i]; 
     final String name = font.getFontName(); 

     if (font.canDisplay('a') && 
     font.canDisplay('z') && 
     font.canDisplay('A') && 
     font.canDisplay('Z') && 
     font.canDisplay('0') && 
     font.canDisplay('1')) { 
     //System.out.println(" OK."); 
     } else { 
     File file = new File("c:\\Windows\\Fonts\\" + name + ".ttf"); 
     if(file.exists()) { 
      System.out.println("Bad Font: " + name); 
      file.delete(); 
     } 
     } 
    } 
    } 
} 

我假設它是一個文件權限衝突,但我不知道如何更改權限。我是否需要以管理員身份運行?

或者..你能告訴我如何打開壞的文件到瀏覽器窗口,以便我可以'全選'?

+0

您應該運行的應用程序作爲管理員才能運行。順便說一句,你爲什麼要刪除一個字體?另外,根據您的操作系統,路徑可能是錯誤的 – 2013-04-08 00:44:05

+0

根據JetBrains的客戶支持,我的電腦有一些防止PhpStorm加載的字體。我該如何在命令行中輸入以管理員身份運行? – Andrew 2013-04-08 00:51:03

+0

如果您正在通過IDE(NetBeans,Eclipse等)運行IDE,請以管理員身份運行IDE,方法是右鍵單擊該exe並使用*以管理員身份運行*選項。如果您從控制檯(cmd)運行此操作,請以管理員身份打開控制檯並執行程序 – 2013-04-08 00:55:00

回答

1
if (font.canDisplay('a') && 
    font.canDisplay('z') && 
    font.canDisplay('A') && 
    font.canDisplay('Z') && 
    font.canDisplay('0') && 
    font.canDisplay('1')) { 
    //System.out.println(" OK."); 
    } else { 
    System.out.println("Bad Font: " + name); 
    File file = new File("c:\\Windows\\Fonts\\" + name + ".ttf"); 
    file.delete(); 
    } 

取消註釋「糟糕的字體行」。運行應用程序時是否打印出任何內容?我懷疑不,因爲雖然你可能不喜歡字體顯示的方式,canDisplay可能會返回true。

或者,「新文件」,字符串構造可能導致不正確。我會嘗試打印出來,並檢查該文件的文件系統。

排序是這樣的:

} else { 
    System.out.println("Bad Font: " + name); 
    String fn = "c:\\Windows\\Fonts\\" + name + ".ttf"; 
    System.out.println("Trying to delete: " + fn); 
    File file = new File(fn); 
    file.delete(); 
    } 
+1

這不會解決問題。 – 2013-04-08 00:53:34

+0

嗨皮特,我試了一下,但沒有刪除。它確實用正確的文件名和路徑打印了'Bad Font'和'Trying to delete'。任何其他想法? – Andrew 2013-04-08 01:15:21

+0

首先,我會切,然後在一個dos窗口中執行: dir 。文件列表?如果沒有,那麼你沒有正確的文件名。 如果有,可以手動刪除文件嗎? 如果您可以手動刪除它,那麼您需要在管理員模式下運行java應用程序。如果不是,則文件的權限可能被鎖定。這是關於採取措施,導致你解決問題的方法。 – 2013-04-08 01:48:32