2016-04-28 18 views
0

私はC#でWord docxファイルをPDFに変換する必要があるWebサービスを開発しています。長い時間を捜した後、私は変換を行うために、docx4j、Javaライブラリに定住しました。 .jarファイルは、私は、コマンドラインから実行すると、期待どおりに動作しますが、私はSystem.Diagnostics.Processを通じて私のC#コードからそれを起動したとき、私は次のエラーを取得:C#からの.jarファイルの開始 - .propertiesファイルが見つかりません

log4j:WARN No appenders could be found for logger (org.docx4j.jaxb.Context). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

を...

WARN org.docx4j.utils.ResourceUtils .getResource line 84 - Couldn't get resource: docx4j.properties 
WARN org.docx4j.Docx4jProperties .init line 22 - Couldn't find/read docx4j.properties; docx4j.properties not found via classloader. 

呼び出しを行うC#コードは次のようになります。

 Process javaCall = new Process(); 

     var dir = HttpContext.Current.Server.MapPath("~"); 

     ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.Arguments = "-Xmx2048m -jar \"" + dir + "\\App_Data\\DocxToPDF.jar\" \"" + sourcePath + "\""; 
     startInfo.FileName = "\"" + System.Configuration.ConfigurationManager.AppSettings["JdkFilePath"] + "\""; 
     startInfo.UseShellExecute = false; 

     javaCall.StartInfo = startInfo; 
     javaCall.Start(); 

     javaCall.WaitForExit(); 

私は.jarファイルと、それは内のディレクトリに、Windowsのセキュリティ設定をチェックしましたし、両方のは、すべてのユーザーに完全な権限に設定されています。手動コマンドラインコールとSystem.Diagnostics.Processからの結果が異なる理由は分かりません。

私は本当にいくつかの助けていただきありがとうございます、必要な場合は、より多くの情報を提供します。

+0

オープニングのJavaがどこにあるデフォルトのコマンドラインで

は、Javaのパスが、ProcessStartInfodoesを知っているか分かりませんの?これは最善の解決策ではありません – ControlAltDel

+0

@ControlAltDel、私の最初のアイデアはWord.Interopライブラリを使用していましたが、私のコードは質問から外れたサーバー上で動作するはずです。私の選択肢は、Asposeのライセンス料を払い、サーバーにLibreOfficeをインストールし、そのソリューションを使用するか、このオープンソースのJavaライブラリを使用することでした。 –

答えて

0

申し訳ありませんが、私の予想よりも簡単な回答が得られました。 .propertiesを.jarファイルと同じフォルダに移動する代わりに、それらを見つけるために管理されたプログラムの中に入れ子になっています。

私は次の時間に簡単に修正を試みるべきだと思います。

0

java.exe実行ファイルの環境変数Pathを設定するか、java.exeのフルパスを指定する必要があります。

ProcessStartInfo ps =新しいProcessStartInfo(@ "c:¥Program Files¥java¥jdk1.7.0¥bin¥java.exe"、@ " - jar C:¥Users¥Owner¥Desktop¥myJarFile.jar"); Process.Start(ps); PDFにWord文書を変換するためのC#からJavaの

+0

上記のC#コードの5行目のjava.exeにファイルパスを指定します。 startInfo.FileName = System.Configuration.ConfigurationManager.AppSettings ["JdkFilePath"] –

関連する問題