導航:首頁 > 編程語言 > java給exe傳參數

java給exe傳參數

發布時間:2022-06-16 12:47:04

1. java後台啟動本地exe程序如何傳遞參數到exe程序並接收

List<String> commands = new ArrayList();

commands.add("a.exe");
commands.add("abc");
ProcessBuilder pb = new ProcessBuilder();
pb.command(commands);
Process pr = pb.start();

2. java 命令行 傳遞參數

不要在Java中處理「<」(重定向)符號,那是留給操作系統來處理的。
要想將將輸入從定向文件傳遞給Java程序,可採用如下辦法。
(1)首先製作批文件(Windows下為.bat文件,Linux/UNIX下為.sh文件)。給你作個例子(以Windows為例,製作一個名稱為start.bat的文件):
@set/p A= >nul
@set/p B= >nul
@set/p C= >nul
@set/p D= >nul
@java 您的java啟動類名 %A% %B% %C% %D%
@set/p A= <nul
@set/p B= <nul
@set/p C= <nul
@set/p D= <nul
這里只有四個參數,您可以添加更多的參數。
之後編寫輸入重定向文件(in.txt),內容範例如下:
para1Value
para2Value
para3Value
...
在執行的時候,使用格式如下:
start.bat < in.txt
這時,您的Java啟動類.main才能接收到從定向文件里的參數。
建議在批文件中可以多設一些參數,即使輸入重定向文件內提供的參數值數量不足也沒有關系,操作系統不會傳遞沒無值參數。

3. java怎樣打包後能成為帶參數的exe

有兩種比較易用的方法:
關於兩種將Java程序轉化為.exe程序工具的使用及比較
一 JSmooth
1.出品
Jsmooth,Sourceforge.net
2. 類型
free
3. 下載
http://jsmooth.sourceforge.net/download.php
4. 步驟
a)利用Eclipse將所需要的主類打成可獨立運行的jar包,注意添加manifest屬性和MainClass。
b)新建一個Jsmooth工程
c) 在sketlon中選擇「Console「 或者 「Windowed「
d) 在Executable中的配置:
i. Executable Binary:填寫目的輸出源的名稱。如test.exe.
ii. Executable Icon :選擇一個好看點的圖標
iii. Current Driectory :.(表示當前工程目錄,當然也可行換成別的,As you wish.)
e) 在Application中的配置:
i. Classpath:選中我們所生成的jar包以及運行該jar文件所需要的類庫
ii. Main-Class:選中我們所需要運行的主類。
iii. 可選項Use an embedded jar:運行該exe時可能需要到的類庫(這里只能有一個類庫)。
f) 在JVM Selection中的配置:
i. Minimum JVM Version:寫一個需要運行該程序所需的最低的就JVM的版本,比如1.4
g) Compile:OK,編譯成功後,在你的輸出目錄上就會有一個嶄新的exe程序了。Just enjoy it.
二 exe4J
1. 出品
ej-technologies
2.類型
Shared software,needs license
3.下載
http://www.ej-technologies.com/download/exe4j/files.php
4. 步驟
a) 利用Eclipse將所需要的主類打成可獨立運行的jar包,注意添加manifest屬性和MainClass。
b) 新建一個exe4j工程
c) 選擇「JAR in exe「 mode
d) 在Configure application中的配置:
i. Short name:隨便寫.
ii. Ourput Driectory :選擇輸出路徑。
e) 在Configure Executable中的配置:
i. Executable type: 有三個選項,圖形,控制台.或服務。從簡單點開始吧,這里我們選console
ii. Executable name:填寫目的輸出源的名稱。如test.exe
iii. Icon file:exe圖標文件,但必須是.ico文件
f) 在Configure Java invocation中的配置:
i. Classpath:選中我們所生成的jar包以及運行該jar文件所需要的類庫
ii. Main-Class:選中我們所需要運行的主類。
iii.Arguments(可選項):輸入參數。我們這里暫不需要。
g)在Configure JRE中的配置:
i. Minimum Version:寫一個需要運行該程序所需的最低的就JVM的版本,比如1.4
h) 一直next,對於所遇到的步驟選項都默認,直到finish:OK。編譯成功後,在你的輸出目錄上就會有一個嶄新的exe程序了。Just enjoy it.
三 總結和比較
由Java生成exe的工具還有很多,上面兩種是我個人覺得用起來覺得比較方便的。兩者的原理基本相同,但具體用起來還是有一點點不太一樣的:
1.相同點
a) 最大的相同點當然是他們原理是互通的。都是通過將可運行的java程序打成可執行的jar包。再作轉換。
b) 所生成的exe可執行程序,需要在裝有比minimum version高的JVM環境下運行。
2. 不同點
a) 生成exe的時候,如果想要exe只需要pure JVM的環境(不需要第三方的類庫)就可以運行的話。在JSmooth需要將所有的用到的第三方類庫壓縮成一個jar包(因為它有個embeded jar的選項),這就比較麻煩,因為當需要的jar多於一個時候,就需要將這些jar包先用jar –xvf 解壓縮,在用jar –cvf重新製作新的jar文件,再放到embeded jar選項中去;而exe4J則會把classppath中所用到的jar包也會編譯到exe中去。
b) JSmooth是免費的;而exe4J是共享軟體,需要注冊,否則在執行exe的時候會彈出很惹人煩的提示框。
c)ico文件的選擇:exe4J要求嚴格的ico文件,而JSmooth則可以兼容jpg等其他各式的圖片。
參考資料:http://zicozhang.spaces.live.com

4. java 調用exe 怎麼傳遞參數

public class Test {
public static void main(String[] args) throws IOException {
try {
// String[] cmds = {"cmd.exe","/c"," dir","c:",">","d://aa.txt"};
// Process pro = Runtime.getRuntime().exec(cmds);
Process pro = Runtime.getRuntime().exec("cmd.exe /c dir c: > d://aa.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream(),"GBK"));
String msg = null;
while ((msg = br.readLine()) != null) {
System.out.println(msg);
}
} catch (IOException exception) {
}
}
}

執行完成之後 會在d://下面生成一個aa.txt文件 裡面保存了 dir的結果 其中 > 是 重定向 意思是講執行結果從定向到 d://aa.txt

5. java 中 如何通過命令行來傳遞參數

可以在命令行運行java程序時加上程序的參數。

例子如下:

public class HelloWorld{


public static void main(String args[]){


System.out.println("temp=" + args[0]);


}


}

源代碼截圖:

解釋一下: String[ ] args

該參數,是一個字元串數組,用來接收從命令行輸入的參數

1. 參數之間用空格隔開

2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。

3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30

4.可以有多個空格,多個空格會被忽略。

(5)java給exe傳參數擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。

6. 怎樣在java類中調用帶參數的可執行文件(比如:.exe,.sh等等)

比如調用exe程序"java -version":

String[] cmd = new String[] {"java", "-version"};
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader r = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String l = null;
while((l = r.readLine()) != null) {
System.out.println(l);
}

Process有兩個流可以讀取外部程序的標准輸出(就是運行結果啦),一個是getInputStream,一個是getErrorStream。

如果要調用C或C++動態鏈接庫中的函數的話,就要復雜一些,要用到JNI了。

7. java 調用exe 需要給exe傳參數

public class Test {
public static void main(String[] args) throws IOException {
try {
// String[] cmds = {"cmd.exe","/c"," dir","c:",">","d://aa.txt"};
// Process pro = Runtime.getRuntime().exec(cmds);
Process pro = Runtime.getRuntime().exec("cmd.exe /c dir c: > d://aa.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream(),"GBK"));
String msg = null;
while ((msg = br.readLine()) != null) {
System.out.println(msg);
}
} catch (IOException exception) {
}
}
}

執行完成之後 會在d://下面生成一個aa.txt文件 裡面保存了 dir的結果 其中 > 是 重定向 意思是講執行結果從定向到 d://aa.txt
希望對你有幫助

8. 請問在JAVA中,用命令行傳遞參數是什麼意思

在你配好JDK環境變數的前提下

在命令提示符中(cmd.exe)輸入,java ClassName parameter

這就是在編譯時象ClassName文件傳遞參數的方式,parameter為參數實體,可以用空格來傳遞多個參數,該參數會傳遞到public static void main(String[] args)中的args數組中

閱讀全文

與java給exe傳參數相關的資料

熱點內容
新鄉市區疫情怎麼查詢app 瀏覽:158
我的世界伺服器怎麼弄圖 瀏覽:999
vc6的編譯框 瀏覽:198
程序員寫照 瀏覽:539
怎麼退出github伺服器版本 瀏覽:797
雲伺服器sip 瀏覽:910
對稱平衡型壓縮機 瀏覽:953
rust連接什麼伺服器 瀏覽:382
php刪除數組的空元素 瀏覽:74
有什麼古今翻譯的app 瀏覽:54
華為平板里的app熱門推薦怎麼關閉 瀏覽:731
kindle可以看pdf嗎 瀏覽:620
小米文件夾變小 瀏覽:324
為什麼安卓系統不設計橫屏 瀏覽:686
myeclipse編譯文件 瀏覽:586
水果解壓視頻教程 瀏覽:207
單片機控制的大一點的車 瀏覽:640
程序員中的榮譽 瀏覽:272
java的封裝性 瀏覽:387
命令提示符垃圾清理 瀏覽:806