Giriş
Java'dan Bat dosyası çalıştırmak için iki tane seçenek var.
1. Runtime sınıfı kullanılır
2 ProcessBuilder sınıfı kullanılır.
Bat dosyalarını çalıştırırken direkt dosya kullanılabilir veya cmd /c veya bunun bir türevi kullanılabilir. Bu örnekleri Windows 10'de denediğimde sorun çıkmadı. Ancak bence cmd /c ile kullanmak daha iyi.
Cmd Kullanmak
Normalde şöyle yapmak gerekir
1. ProcessBuilder
Örnek -Direkt Bat Dosyasını Çalıştırmak
Direkt bat dosyasını kullanmak istersek şöyle yaparız.
exec metodu - String
İmzası şöyle. Working Directory uygulamamızın bulunduğu dizindir.
Şöyle yaparız. Burada bat dosyasına tam yolu (full path) veriyoruz.
İmzası şöyle
Örnek - cmd Kullanmak
Şöyle yaparız.
Java'dan Bat dosyası çalıştırmak için iki tane seçenek var.
1. Runtime sınıfı kullanılır
2 ProcessBuilder sınıfı kullanılır.
Bat dosyalarını çalıştırırken direkt dosya kullanılabilir veya cmd /c veya bunun bir türevi kullanılabilir. Bu örnekleri Windows 10'de denediğimde sorun çıkmadı. Ancak bence cmd /c ile kullanmak daha iyi.
Cmd Kullanmak
Normalde şöyle yapmak gerekir
cmd /c start myfile.bat
Ancak bir seferinde start'dan sonraki kısmı tırnak içine almak ve slahleri sola değil sağa doğru vermek gerekti. Sebebini bilmiyorumcmd /c "start c:/foo/barmyfile.bat"
1. ProcessBuilder
Örnek -Direkt Bat Dosyasını Çalıştırmak
Direkt bat dosyasını kullanmak istersek şöyle yaparız.
String filePath = "C:/test.bat";
Process p = Runtime.getRuntime().exec(filePath);
p.waitFor();
Örnek - Direkt Bat Dosyasını Çalıştırmak
Eğer array olarak başka parametreler de geçmek istesek yine sorun çıkmaz. Window bir şekilde bat dosyasını cmd ile çalıştırması gerektiğini anlıyor.
2. Runtime Sınıfı
exec() metodu kullanılır. Bu metodun tam 6 tane overload edilmiş hali var.Eğer array olarak başka parametreler de geçmek istesek yine sorun çıkmaz. Window bir şekilde bat dosyasını cmd ile çalıştırması gerektiğini anlıyor.
ProcessBuilder pb = new ProcessBuilder("upsert.bat");
Process p = pb.start();
2. Runtime Sınıfı
exec metodu - String
İmzası şöyle. Working Directory uygulamamızın bulunduğu dizindir.
Process exec(String command);
Örnek - cmd KullanmakŞöyle yaparız. Burada bat dosyasına tam yolu (full path) veriyoruz.
try {
Process p = Runtime.getRuntime()
.exec("cmd /c start \"C:\\upsert.bat\"");
} catch (IOException ex) {
}
exec metodu - String + String [] + Fileİmzası şöyle
Process exec(String command, String[] envp, File dir);
String [] environment değerlerini içerir
File ise bat dosyasını hangi dizine giderek çalıştıracağımızı belirtir. Yani Working Directory belirtilir.Örnek - cmd Kullanmak
Şöyle yaparız.
Process p = Runtime.getRuntime().exec("cmd /c upsert.bat", null,
new File("C:\\Program Files\\salesforce.com\\Data Loader\\cliq_process\\upsert"));
Hiç yorum yok:
Yorum Gönder