簡體   English   中英

從 Azure Z86408593C34AF77FDD90DF93F2 中的 C# 執行 java.exe

[英]Executing java.exe from C# in Azure Function

I'm trying to execute java to run a JAR file from an Azure function, but it seems like the java PATH variable isn't defined or something because Azure can't seem to find it. 下面的代碼:

 Process proc = new Process();
        try
        {
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.CreateNoWindow = false;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.FileName = "java.exe";
            proc.StartInfo.Arguments = "-jar file path and some more arguments";
            proc.Start();
            proc.WaitForExit();
            if (proc.HasExited)
                log.Info(proc.StandardOutput.ReadToEnd());

            log.Info("Java Success!");
        }
        catch (Exception e)
        {
            log.Info("Java Fail");
            log.Info(e.Message);
        }

即使我刪除了proc.StartInfo.Arguments或告訴它使用java.exe而不是java我仍然得到相同的錯誤,如下:

[信息] 系統找不到指定的文件

Azure 函數不支持調用 java 嗎?

好想通了。 到目前為止,最好的方法是完全限定java.exe的路徑。

所以我改變了
proc.StartInfo.FileName = java.exe";

proc.StartInfo.FileName = "D:\\\\Program Files (x86)\\\\Java\\\\jdk1.8.0_73\\\\bin\\\\java.exe";

您可以使用KUDU找出Java的完整路徑,網址為https:// [yourFunctionName] .scm.azurewebsites.net /

如果單擊“工具”->“調試控制台”,則可以瀏覽直到找到Java所在的位置。

請注意,硬編碼通往Java的路徑可能不是一個好主意,因此您應該使用應用程序設置。

下面的編輯是我的最終項目與GitHub Repo的鏈接。 該項目還有其他功能,但是您可以看到我在哪里調用Java來執行Batik JAR。
https://github.com/osuhomebase/SVG2PNG-AzureFunction

截至 2022 年 9 月,

proc.StartInfo.FileName = java.exe";

對我來說工作得很好。 似乎 Azure Function 環境已安裝 JDK 並且 JAVA PATH 變量集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM