簡體   English   中英

Java的Shell腳本不起作用

[英]Shell Script for Java not working

我正在使用一個make文件來創建一個簡單的shell腳本來執行Java程序,該makefile如下:

top:
    javac -d classfiles -sourcepath src src/kruskal.java
test:
    echo java -classpath classfiles kruskal \$\* > kruskal
    chmod +x kruskal
clean:
    rm -f classfiles/"/".class

但是,當我運行make test然后嘗試執行我的程序(它包含命令行參數)時,java嘗試使用參數“ -classpath”和“ classfiles”作為參數來運行程序,從而導致程序拋出FileNotFoundException。 我正在使用以下程序運行該程序:

kruskal g1.txt 

難道我做錯了什么? 這是我第一次使用Shell腳本,希望能對您有所幫助。

編輯:這也是確切的錯誤:

java.io.FileNotFoundException: classfiles (Access is denied)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at kruskal.readInputs(kruskal.java:20)
    at kruskal.main(kruskal.java:172)
Exception in thread "main" java.lang.NullPointerException
    at kruskal.BFS(kruskal.java:132)
    at kruskal.main(kruskal.java:177)

要在Makefile中轉義$ ,請使用另一個$ kruskal文件的當前內容實際上是java -classpath classpath kruskal *並且*用當前目錄中的文件擴展,該文件是classpath等。 甚至更糟的是, *已經通過運行echo命令的shell擴展了*

因此,使Makefile行正確:

test:
         echo "java -classpath classfiles kruskal \$$*" > kruskal

暫無
暫無

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

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