2017-06-07 9 views
-1

パブリックユーザーフォルダ内のファイルに結果を出力した後、単純なファイルを実行するのにかかる時間について簡単なランタイムテストを実行するコードがあります。私のコンピュータ上で動作しますが、他の誰にも動作しません。これは私のコードですJarファイルは自分のコンピュータでのみ動作します

import java.awt.List; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStreamWriter; 
import java.io.PrintWriter; 
import java.io.Writer; 
import javax.swing.*; 
    public class Speed { 
    public static void main(String[] args) { 

     final long length=100000000; 
     List merh = new List(); 
     File filename = new File("C:\\Users\\Public\\filename.txt "); 
     final long startTime = System.currentTimeMillis(); 
     for (int i = 0; i < length; i++) { 
      merh.add("Hereherehehrehrehrherh"); 
     } 
     final long endTime = System.currentTimeMillis(); 

     System.out.println("Total execution time: " + (endTime - startTime) 
); 

     Writer writer = null; 

     try { 
      writer = new BufferedWriter(new OutputStreamWriter(

        new FileOutputStream(filename), "utf-8")); 
      writer.write("Total execution time: " + (endTime - startTime)); 
     } catch (IOException ex) { 
      // report 
     } finally { 
      try {writer.close();} catch (Exception ex) {/*ignore*/} 
     } 


    } 


} 
+2

それはあなたのすべてのエラーメッセージを与えていますか?他のコンピュータにはC:\\ Users \\ Public \\ filename.txtファイルがありますか? –

答えて

-1

このコードは完全に正常です。私は私のマシンでこれをテストし、出力が

総実行時間です:あなたはあなたが避けるべき絶対パス名を使用している他のマシン

0

になっているどのようなエラー6728

。それが失敗した理由は、それを使用している他のコンピュータにディレクトリC:\Users\Public\が含まれていないためです。代わりにSystem.getProperty("user.home")を使用してください。このライン:

File filename = new File("C:\\Users\\Public\\filename.txt "); 

ゆえになる:

File filename = new File(System.getProperty("user.home") + "\\filename.txt"); 

System Properties

+0

どこでfilename.txtが終わるのですか? – CastMagicMissle

+0

Windowsでは 'C:\ Users \ CurrentlyLoggedInAccount'になります。ホームディレクトリを探したい場合は、コマンドプロンプトで 'cd%userprofile%'と入力します。 –

関連する問題