0

いくつかのファイルを取得してそれらを組み合わせる単純な解析プログラムがあります。次に、作業ディレクトリにいくつかの出力ファイルを生成します。このプログラムをeclipseで実行すると、必要なすべての出力ファイルが生成されます。ただし、eclipseで生成されたjarを使用して実行すると、3つの出力ファイルのうち2つしか作成されません。jarファイルの生成方法に問題があると思いますが、これに対する答えが見つからないようです。

私はいくつかのJavaを更新しようとしました、それは私が信じるJava5を使用して書かれました。VectorsをArrayListsに、FileOutputStreamをFileWriterに変更しました。

必要なライブラリを取得するためにjavax.mailをダウンロードし、それらのjarファイルをEclipseで使用していたjava6ライブラリに追加する必要がありました。クラスを削除して、新しいクラスを生成してみました。jarファイルのアクセス許可をチェックして、アクセスできることを確認しようとしました。どこから始めたらいいのかわからないと思います。

また、これを実行可能なjarファイルとしてではなく、jarファイルとしてパックしようとしました。これは、何を含めるかについてより多くのオプションが提供されたためです。ただし、このタイプのjarファイルは実行可能ファイルであるにもかかわらず実行できませんでした。運が悪かったので、jarファイルを何度も再作成しました。

UTF-8がjarファイルに正しく表示されないが、Eclipseでは問題がないという問題がかなりありました。しかし、彼らのjarファイルはテキストファイルを生成していましたが、私の場合はテキストファイルを生成しませんでした。

更新:興味深いことに、コードのブロックを独自のクラスに移動し、それを別のjarとして実行すると、機能します。したがって、今のところ解決策は2つのjarファイルを用意することです。

生成されていないファイルのコードは次のとおりです。

private static void parseCRNOnly() { 
try { 
    //file to write to 
    File new_file = new File("CRNOnlyClean.txt"); 
    FileWriter out = new FileWriter(new_file); 

    //file to read from 
    File file = new File("CRNOnly.txt"); 
    FileReader reader = new FileReader(file); 
    BufferedReader buf = new BufferedReader(reader); 

    try{ 
        String str; 
        String temp = "\r"; 
        String nl = "\r\n"; 
        String tab = "\t"; 

        str = buf.readLine(); 

        while (str != null && !str.isEmpty()) { 
            StringTokenizer tokenizer = new StringTokenizer(str," \t"); 
            int column = 0; 
            while(tokenizer.hasMoreTokens()) { 
                column++; 
                temp = tokenizer.nextToken(); 
                if(column == 8){ 
                    break; 
                } 
            out.write(temp); 
            out.write(tab); 
         } 
         out.write(nl); 

         str = buf.readLine(); 
         } 

         out.close(); 
      } catch(IOException e0){ 
            System.out.println("Error Reading From CRNOnly.txt"); 
            JOptionPane.showMessageDialog(null, "Error Reading From CRNOnly.txt"); 
        } 
      } catch(FileNotFoundException e1){ 
            System.out.println("File CRNOnly.txt Not Found"); 
            JOptionPane.showMessageDialog(null, "File CRNOnly.txt Not Found"); 
      } catch (IOException e) { 
            System.out.println("Error Reading from FileWriter"); 
            JOptionPane.showMessageDialog(null, "Error Reading from FileWriter"); 
      } 
4

1 に答える 1

0

何らかの理由で、jarファイルにjavax.mailから追加する必要のある古いライブラリが含まれていなかったため、代わりにnetbeansを使用してjarファイルを作成してみましたが、機能しました。Netbeansはjavax.mailライブラリもjarファイルにパックしませんでしたが、jarファイルとともにファイルに含めました。したがって、jarファイルを使用するには、このファイルもディレクトリに存在する必要があります。

于 2012-08-06T15:12:52.420 に答える