當前位置:首頁 » 編程語言 » Execjava

Execjava

發布時間: 2022-12-21 03:46:04

java 中用exec()執行命令行的問題

這是由於JVM沒找到IOtest
你可以將這個類生成到運行exec("javac H:\\IOtest.java");這句話的類同一目錄下,或者右鍵「我的電腦」-「屬性」-「高級」-「環境變數」新建或編輯已有的CLASSPATH,添加如下內容「H:\」

Ⅱ java如何運行main方法不build

從命令行運行。
1、運行前先編譯代碼,exec:java不會自動編譯代碼,你需要手動執行mvn compile來完成編譯。
2、編譯完成後,執行exec運行main方法。 (不需要傳遞參數,需要傳遞參數)

在使用exec命令時,可能會出現一個保護進程DaemonThred警告warning,可能會導致發送的郵件內容和主題亂碼。
main方法的聲明為:public static void main(String args[])。必須這么定義,這是Java的規范。

Ⅲ java通過exec條用cmd執行adb無效

"cmd.exe /c adb devices"
java的Runtime環境已經是命令行模式,類似已經打開cmd.exe 所以,
執行後續命令無需加上 cmd.exe,命令修改為:
Runtime.getRuntime().exec("adb devices")

Ⅳ java使用exec方法,參數中有管道命令無效,除了拆開成兩個,請問還有其他辦法嗎謝謝

好像只能這樣通過輸出流輸入流來獲取

Ⅳ 關於java exec函數執行帶參數的C程序問題

參考資料:
前段時間因為項目開發,需要在ubuntu環境下用servlet去調用c語言寫的一個shell應用程序,對於在java語言中調用可執行程序,往往都採用了exec函數,於是也採納了這一方法,沒想到調用後執行發現沒有任何發現,我想是不是因為tomcat伺服器的許可權不夠,於是通過chmod 777 ***把許可權賦予給了tomcat,試了一下還是沒有反應,為什麼呢,後來根據網上的查詢,發現也出現很多類似的問題,用exec("ifconfig")等運行沒問題,用自己編寫的shell程序卻沒有執行,伺服器也沒有報什麼錯誤,我想肯定是我編寫的shell程序跟系統的shell程序有什麼不同之處,這個讓我想到了環境變數的設置,於是開始假設是不是因為我的shell程序路徑問題呢,為了進行這個試驗,我想看下exec執行命令的當前路徑在哪裡,好,採用exec("ls");運行後發現是在tomcat安裝目錄下的bin文件夾下面,原來是因為我自己寫的shell程序沒有放在這個下面,於是我把自己寫的shell程序放到這個下面就可以了。問題也解決了。

Ⅵ java Runtime.exec 異常

1 Runtime.getRuntime()返回Process對象
2 Process對象擁有輸入流和輸出流
3 Process對象具有waitFor效應,命令有可能執行不成功!
4 先寫入輸入流,然後從Process裡面讀出輸出命令即可。
5 以下是比較成功的方法,doc下面的命令幾乎都能成功!

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
public class Command {
private java.lang.Process p;
private InputStream is;
private OutputStream os;
private BufferedWriter bw;
private BufferedReader br;
private ProcessBuilder pb;
private InputStream stdErr;
public Command() {
}
//獲取Process的輸入,輸出流
public void setCmd(String cmd) {
try {
p = Runtime.getRuntime().exec(cmd);
os = p.getOutputStream();
is = p.getInputStream();
stdErr = p.getErrorStream();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
//向Process輸出命令
public void writeCmd(String cmd) {
try {
bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write(cmd);
bw.newLine();
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//讀出Process執行的結果
public String readCmd() {
StringBuffer sb = new StringBuffer();
br = new BufferedReader(new InputStreamReader(is));
String buffer = null;
try {
while ((buffer = br.readLine()) != null) {
sb.append(buffer + "\n");
}
System.out.println(p.waitFor());
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
//將命令一股腦塞入list中
public LinkedList<String> doCmd(LinkedList<String> lists) {
LinkedList<String> list = new LinkedList<String>();
for (String s : lists) {
writeCmd(s);
list.add(readCmd());
}
return list;
}
public static void main(String[] args) {
Command cmd = new Command();
cmd.setCmd("cmd");
cmd.writeCmd(" d:\\stock.xml d:\\backStock.xml");
System.out.println(cmd.readCmd());
//LinkedList<String> list = new LinkedList<String>();
//list.add("dir/b");
//list = cmd.doCmd(list);
// for(String s:list){
// System.out.print(s);
// }
}
}

Ⅶ Java如何禁用exec等系統函數

似乎是有可能配置 Java 2 Security 來做這件事,不過要知道配置這個文件是非常繁瑣的事情,因為它相當於一個白名單,要把所有允許的都列出來,本來你只想禁用一個功能卻需要列舉很多種允許的事情,這會非常痛苦。你看是不是在 policytool 中除了 grant 之外還有 revoke 或 deny 之類的功能來設定黑名單。


比如可能導致 Java 反射這種平時允許的操作也無法正常工作。


在 JDK 目錄下的 in 下面有一個 policytool 程序,啟動它來創建你的 Java 2 Security Policy,然後在你的程序的命令行多加一個參數 -Djava.security.policy=你的policy文件路徑(全名哦)


我覺得你設定這個 Java 程序啟動時用指定的操作系統用戶身份來運行可能更容易在操作系統方面控制它能訪問什麼程序,這樣就算它執行了exec 也會被操作系統攔截的。



Ⅷ JAVA 關於exec調用cmd

cmd.exe /c javac C:\\Documents and Settings\\Administrator\\桌面\temp\\A.java

javac:無效的標志 用法 javac <options> <source files>

你可能沒有正確的配置環境變數

開發的時候最好藉助工具 這樣可以省去很多找文件的過程 數據輸出也更加明了

Ⅸ java 中如何用exec()執行「java "命令行運行某個文件夾下的 .class文件

因為java命令後面緊跟的是[包名/]類名 ,上面的命令解釋器會解釋成執行名字叫H:\IOtest的類 ,所以會報錯。正確的執行方法應該是你首先把當前目錄變成包所在的目錄,如果沒包含於包的話就是該類所在的目錄,或者是把上述目錄設置成classpath ,然後執行java [包名/]類名

先執行exec("cd /d H:"); 然後 exec("java IOtest");
或者是 先 exec("set classpath=H://"); 然後 exec("java IOtest");

Ⅹ exec()怎樣調用java.exe並執行.class文件

Processp=Runtime.getRuntime().exec("cmd");//建議使用cmd
OutputStreamout=p.getOutputStream();
out.write("c: ".getBytes());//切換到C盤
out.write("cdUsers\Administrator\Desktop ".getBytes());//切換目錄到桌面
out.write("javacTest.java ".getBytes());//執行你原來的那個命令
out.write("javaTest ".getBytes());//執行javaTest,因為用的同一個cmd進程
//所以cmd里邊的目錄沒變,執行java和javac時就不用重復設定路徑。
//這里還可以用startjavaTest這樣就能將Test從另一個java虛擬機中啟動,不過也就得不到InputStram了
out.flush();

當然也可以直接就這么執行:

Runtime.getRuntime().exec("javaTest-classpathC:\Users\Administrator\Desktop");//直接用這個命令執行java需要把classpath以參數的形式傳進去,否則會提示找不到主類。如果出錯可能是因為classpath需要將jdk的運行時環境也包含進去,用cmd來調用java的話就可以避免自己來設置這些了。
熱點內容
手機優酷緩存視頻格式 發布:2025-05-15 04:13:45 瀏覽:209
公益電影分鏡頭腳本插畫 發布:2025-05-15 04:08:37 瀏覽:960
數據壓縮編碼 發布:2025-05-15 03:58:44 瀏覽:725
java字元為空 發布:2025-05-15 03:57:11 瀏覽:546
速訊安卓哪裡下載 發布:2025-05-15 03:55:02 瀏覽:48
緩存區數據讀寫原理 發布:2025-05-15 03:39:57 瀏覽:585
編譯器生成的是二進制文件嗎 發布:2025-05-15 03:38:42 瀏覽:955
運營為什麼區分ios和安卓 發布:2025-05-15 03:30:02 瀏覽:630
主播網站源碼 發布:2025-05-15 02:50:56 瀏覽:168
中文編程語言有哪些 發布:2025-05-15 02:48:59 瀏覽:536