windowsjava啟動腳本
A. windows設置開機自啟動腳本
Windows系統想要快速設置開機自動啟動某個程序,可以使用以下幾種方法設置:
第一種:設置啟動項
1.找到啟動文件夾,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,或者打開運行,輸入shell:startup,回車,也可以快速打開啟動文件夾。
2.拷貝需要開機啟動的程序的快捷方式到此文件夾即可。
3.打開任務管理器-啟動查看啟動項。
這樣就設置好了,下次計算機啟動時,程序也會自動啟動的。
第二種:使用計劃任務自啟動
1.新建文本文件DebugStart.txt,打開寫入以下內容:
tasklist|find /i "authSender.exe" && echo started || start "" "D:\Debug\authSender.exe"。
這條語句不能換行, authSender.exe 是程序名, "D:\Debug\authSender.exe"是此程序所在路徑,tasklist|find /i "authSender.exe"是判斷進程是否存在,程序是否已經開啟,如未開啟才會啟動程序,然後改後綴名 .txt 為 .bat,雙擊即可啟動程序。(可以在每條語句前使用 :: 來注釋一條語句),這種方法還可以批量啟動不同程序,只需要在此文件中重啟一行,按相同格式寫第二個要啟動的程序對應的語句即可。
2.進入任務計劃程序窗口,創建任務。
接著選擇觸發器選項卡,選擇新建,在第一欄開始任務處選擇登錄時(啟動時開始任務需要管理員許可權)或啟動時(啟動時開始任務需要管理員許可權),點擊確定。由於我們的 bat腳本有做判斷,所以不用擔心程序會啟動多次。
在操作選項卡選擇新建,並選擇啟動程序選項,以及在程序和腳本處選擇剛才編寫的.bat程序,點擊確定,然後再點擊確定(創建任務界面的確定)。
關閉頁面,即可做到開機自動啟動程序。
第三種:通過組策略設置腳本隨伺服器啟動
1.開始->運行->gpedit.msc->計算機配置->Windows設置->腳本(啟動/關機)。其中Win10有很多版本,其中家庭版默認是不提供組策略功能,如果需要給win10的家庭版添加組策略的功能,可以參考https://blog.csdn.net/lwpkjio/article/details/85236808。
2.添加啟動腳本,點擊確定。
這樣就可以了。
第四種:添加服務自動運行
1.開始---運行---cmd---回車,在彈出的窗體中輸入如下命令:
sc create Debug binPath= D:\Debug\authSender.exe start= auto,其中Debug為將要創建的服務名。要刪除創建的服務也很簡單,使用以下命令即可:sc delete ServiceName
2.打開控制面板---管理工具---服務(或者 開始---運行---services.msc---確認)打開服務管理器,看看你創建的服務已經在裡面了,至此,服務運行已創建完成。
B. java程序如何在win7系統中開機啟動詳解
以下是在win7系統中如何讓我們自己寫的java程序開機自啟
1,首先我們需要把我們的java程序打成可以運行的jar,放到當前系統的 classpath 目錄中。
2,新建 bat 文件。流程如下:
@echo off
java -jar 路徑xxxx.jar
@pause
然後點擊文件-另存為(存放jar的目錄下),文件名修改xxxx.bat(提議命名和jar名一致)。
3,windows+r輸入regedit會出現注冊表編輯器。
4,在注冊表編輯器中找到Run目錄,具體路徑如下:
HKEY_LOCAL_
5,找到Run目錄之後,在右邊框中右擊新建字元串值,新建唯一標示作為鍵名,然後右擊新建名稱-修改在數值數據中填寫"路徑xxxx.bat"。
6,重啟你的機器,你會看到你想要的效果。
C. java,怎麼用腳本運行
1.直接執行python腳本代碼
引用 org.python包
1 PythonInterpreter interpreter = new PythonInterpreter();
2 interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); "); ///執行python腳本
2. 執行python .py文件
1 PythonInterpreter interpreter = new PythonInterpreter();
2 InputStream filepy = new FileInputStream("D:\\demo.py");
3 interpreter.execfile(filepy); ///執行python py文件
4 filepy.close();
3. 使用Runtime.getRuntime()執行腳本文件
這種方式和.net下面調用cmd執行命令的方式類似。如果執行的python腳本有引用第三方包的,建議使用此種方式。使用上面兩種方式會報錯java ImportError: No mole named arcpy。
1 Process proc = Runtime.getRuntime().exec("python D:\\demo.py");
2 proc.waitFor();
D. 啟動Java應用的Shell腳本
對於Java應用程序(非web應用) 在部署後 常常需要一個啟動腳本來載入一些第三方的jar包 並啟動應用
對於java應用程序 我一般喜歡將程序的目錄結構寫成如下的方式
myapp
| lib
| bin
| packages
一些配置文件和屬性文件
一個startup sh 或bat啟動腳本
其中 packages是程序的根包 其中有子包和class文件等
在包中 有一個Main calss的類 這個作為程序的入口
下面給出一個最一般的寫法
startup sh #!/bin/sh
programdir=
num=$#
temp=$CLASSPATH
#setting libs path
libs= /lib/*
append(){
temp=$temp : $
}
for file in $libs; do
append $file
done
export CLASSPATH=$temp: : /:$programdir
export LANG=zh_CN
nohup java classpath $CLASSPATH packaages xxx yyy Main &
這樣 只要按照上面的方式組織程序 啟動腳本就需要改動下Main前面的包路徑即可
nohup 上面腳本中最後一行前有nohup 這是將程序的輸入輸出都將附加到當前目錄的 nohup out 文件中
lishixin/Article/program/Java/hx/201311/25993
E. java啟動windows命令行
這是摘自JAVA NB 網 http://www.javanb.com 上的例子。
如何用java啟動windows命令行程序: http://www.javanb.com/java/1/17740.html
先請編譯和運行下面程序:
import java.util.*;
import java.io.*;
public class BadExecJavac2
{
public static void main(String args[])
{
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("javac");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t){
t.printStackTrace();
}
}
}
我們知道javac命令,當不帶參數運行javac 程序時,它將輸出幫助說明,為什麼上面程序不產生任何輸出並掛起,永不完成呢?java文檔上說,由於有些本地平台為標准輸入和輸出流所提供的緩沖區大小有限,如果不能及時寫入子進程的輸入流或者讀取子進程的輸出流,可能導致子進程阻塞,甚至陷入死鎖。所以,上面的程序應改寫為:
import java.util.*;
import java.io.*;
public class MediocreExecJavac
{
public static void main(String args[])
{
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("javac");
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t){
t.printStackTrace();
}
}
}
下面是正確的輸出:
D:\java>java MediocreExecJavac
Usage: javac 〈OPTIONs>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath Specify where to find user class files
-cp Specify where to find user class files
-sourcepath Specify where to find input source files
-bootclasspath Override location of bootstrap class files
-extdirs Override location of installed extensions
-endorseddirs Override location of endorsed standards path
-d Specify where to place generated class files
-encoding Specify character encoding used by source files
-source Provide source compatibility with specified release
-target Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-X Print a synopsis of nonstandard options
-J Pass directly to the runtime system
Process exitValue: 2
D:\java>
下面是一個更一般的程序,它用兩個線程同步清空標准錯誤流和標准輸出流,並能根據你所使用的windows操作系統選擇windows命令解釋器command.com或cmd.exe,然後執行你提供的命令。
import java.util.*;
import java.io.*;
class StreamGobbler extends Thread
{
InputStream is;
String type; //輸出流的類型ERROR或OUTPUT
StreamGobbler(InputStream is, String type)
{
this.is = is;
this.type = type;
}
public void run()
{
try
{
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
{
System.out.println(type + ">" + line);
System.out.flush();
}
} catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
public class GoodWindowsExec
{
public static void main(String args[])
{
if (args.length < 1)
{
System.out.println("USAGE: java GoodWindowsExec ");
System.exit(1);
}
try
{
String osName = System.getProperty("os.name" );
System.out.println("osName: " + osName);
String[] cmd = new String[3];
if(osName.equals("Windows XP") ||osName.equals("Windows 2000"))
{
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
}
else if( osName.equals( "Windows 98" ) )
{
cmd[0] = "command.com" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
}
Runtime rt = Runtime.getRuntime();
System.out.println("Execing " + cmd[0] + " " + cmd[1]+ " " + cmd[2]);
Process proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
} catch (Throwable t){
t.printStackTrace();
}
}
}
下面是一個測試結果:
D:\java>java GoodWindowsExec " Test.java Test1.java"
osName: Windows XP
Execing cmd.exe /C Test.java Test1.java
OUTPUT>已復制 1 個文件。
ExitValue: 0
D:\java>
下面的測試都能通過(windows xp+jdk1.5)
D:\java>java GoodWindowsExec dir
D:\java>java GoodWindowsExec Test.java
D:\java>java GoodWindowsExec regedit.exe
D:\java>java GoodWindowsExec NOTEPAD.EXE
D:\java>java GoodWindowsExec first.ppt
D:\java>java GoodWindowsExec second.doc
function TempSave(ElementID) { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); }