[英]Unable to run java program from commandline
我在從命令行運行 java 程序時遇到了嚴重的問題。 我覺得我已經很接近弄清楚出了什么問題,但我只是不知所措,我需要幫助。
我正在嘗試使用以下命令運行一個簡單的 Hello World 程序(在 windows 上的 VSCode 中,使用 bash 終端):
javac Hello.java
java Hello
這根本行不通,但是,寫入文件的完整路徑確實有效,所以像這樣的事情是可行的。
javac -cp c//path//to//file// Hello.java
java -cp c//path//to//file// Hello
此外,使用 F5 運行該文件也可以正常工作。 我想用命令行 arguments 運行我的程序,而不必每次都將整個路徑寫入文件,因為這非常乏味。
我的PATH和CLASSPATH變量如下:
PATH: C:\Program Files\Eclipse Adoptium\jdk-17.0.2.8-hotspot\bin
CLASSPATH: C:\Program Files\Eclipse Adoptium\jdk-17.0.2.8-hotspot\bin
誰能給我一些關於什么地方出了問題的見解? 我發現減少我必須手動編寫的數量的最接近的解決方案是將 my.bashrc 中的變量保存到我當前的工作目錄,使以下命令成為可能:
java "$cwd"Hello
任何幫助是極大的贊賞。
你的 CLASSPATH 壞了。
CLASSPATH 作為一個概念是java class 文件(或 jars 和其中的 class 文件)所在的位置。 不是java 二進制文件所在的位置(java 通常知道它們在哪里。對於少數不知道的工具, JAVA_HOME
用於此,並且您提供“主目錄”(該bin
目錄的父目錄)。
Java 知道在哪里可以找到自己的核心類(比如java.lang.String
和 co),這些都是由 bootclasspath 提供的。
通常,您一開始就不想使用CLASSPATH
作為環境變量:您可以在一台計算機上擁有多個 java 項目,它們的需求完全不同。 這就是 IDE、構建工具和java -jar
完全忽略該變量的原因。
但是,它是制作普通 ole javac *.java; java MyClass
javac *.java; java MyClass
工作。 具體來說,您應該將CLASSPATH
設置為:"."
就是這樣。 只是點:當前目錄。 完成此操作后,您只需鍵入:
javac MyApp.java
java MyApp
請注意,對於現代 java 版本,您實際上可以只編寫java MyApp.java
; java 將在一個 go 中編譯和運行您的代碼。這將無法真正快速地工作(當您涉及依賴項和多個包時),但對於單個源文件的最學術簡單的情況,它也可以正常工作。
請注意, "$PWD"
開箱即用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.