1. 程式人生 > >用命令列編譯java檔案

用命令列編譯java檔案

用慣了IDE,突然發現對於javajavac命令只會基礎的單檔案編譯執行,因此特地研究了一下多檔案依賴編譯執行。(順便一提,stackoverflow真是個好地方)

環境:Java8 Windows10

單檔案編譯

帶包名的java類編譯

現在我們對 HelloWorld.java 做些小小的修改程式碼如下

package lib;

public class HelloWorld
{
	public static void main (String []args) {
		System.out.println ("Hello World!");
	}
}

這種情況,有兩種方式:

第一種就是直接用 -d 

引數編譯。

編譯命令  javac -d . HelloWorld.java  切記  .  代表當前目錄左右空格不能丟。編譯後編譯器會幫我們在當前目錄下自動生成一個lib資料夾,這和我們的包名一致。如果包名很長如: com.shark.test 編譯器就會生成 ./com/shark/test 三級目錄,在最裡層即 test目錄下就是我們的class檔案。

執行命令 java lib.HelloWorld 執行時需帶上完整包名+類名


第二種方式是手動建立一個 lib 資料夾將 HelloWorld.java 放進去,(這裡的lib 取決於包名,若多層包名需建立多級目錄)

編譯命令:javac ./lib/HelloWorld.java

執行命令為:java lib.HelloWorld


引用第三方jar包的編譯

在這裡我引用的是mysql的jar包。程式碼如下

import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Driver;

public class Test
{
	private ResultSet rset;
	private static Driver driver;

	public static void main (String args [] )	 throws SQLException 
	{
		driver  = new Driver();
		System.out.println ("HelloWorld!!");
		System.out.println (driver);
	}
}

編譯命令   javac -cp mysql-connector-java-5.1.7-bin.jar Test.java   

執行命令  java -Djava.ext.dirs=./ Test    或是   java -cp .;mysql-connector-java-5.1.7-bin.jar Test


有包名:

編譯命令 : javac -d . -cp mysql-connector-java-5.1.7-bin.jar Test.java   

執行命令  java -Djava.ext.dirs=./ Test   

-cp 指定第三方jar包的位置


多檔案編譯

同級目錄下


一下是準備工作,在當前目錄下建立 HelloWorld.java 和 Main.java檔案內容分別如下

public class HelloWorld
{
	public String getMsg ()
	{
		return "HelloWorld!";
	}
}
public class Main 
{
	public static void main (String []args)
	{
		HelloWorld hw = new HelloWorld ();
		System.out.println (hw.getMsg ());
	}
}
在cmd中檢視目錄如下:

同級目錄下java和javac都可以自動識別,這裡很簡單,編譯命令為  javac HelloWorld.java Main.java 執行命令為 java Main


非同級目錄

當前目錄下Main.java
import lib.HelloWorld;

public class Main 
{
	public static void main (String []args)
	{
		HelloWorld hw = new HelloWorld ();
		System.out.println (hw.getMsg ());
	}
}
在當前目錄下建立一個目錄lib 並在lib下建立一個檔案 HelloWorld.java
package lib;

public class HelloWorld
{
	public String getMsg ()
	{
		return "Hello World!";
	}
}
編譯命令  javac Main.java ./lib/HelloWorld.java 執行命令為 java Main
多謝stackoverflow的大佬,下面附上相關連結  https://stackoverflow.com/questions/13738343/import-class-file-in-java?rq=1
https://stackoverflow.com/questions/44458126/use-javac-and-java-to-excute-class-file-with-extern-classes-under-other-director

相關推薦

命令編譯java檔案

用慣了IDE,突然發現對於java和javac命令只會基礎的單檔案編譯執行,因此特地研究了一下多檔案依賴編譯執行。(順便一提,stackoverflow真是個好地方) 環境:Java8 Windows10 單檔案編譯 帶包名的java類編譯 現在我們對 HelloWorld

怎麼命令執行.java檔案

第一步 假如在e盤裡有個資料夾名為Java,在Java資料夾裡有一個事先寫好的.java程式,如下: 第二步 開啟命令列視窗(Window+R),輸入cmd,點確定,如下: 第三步 轉到HelloWorld.java檔案所在的資料夾。 (1)檔案在E盤,首先輸入

命令編譯java並生成可執行的jar包

如果對於編譯有編碼要求的 應該使用-encoding引數指明編碼方式:javac -encoding UTF-8 XX.java 一個package中,兩個java檔案中,一個有main函式,一個沒有,兩者之間有呼叫關係 ThreadTest.java package

命令編譯java檔案,執行class檔案

一、編譯java檔案的話,則需要先安裝jdk環境。 安裝JDK後配置環境變數 :計算機➡屬性➡高階系統設定➡高階➡環境變數,在系統變數裡:  1)新建JAVA_HOME,變數值為jdk路徑,我的是C:\Program Files\Java\jdk1.8.0_65  2)新

命令編譯java檔案

原始檔: package com.test; public class HelloTest { /** * @param args */ public static void main(String[] args) {

在linux下命令編譯 java的eclipse專案

由於jdk的版本問題導致在windows上編譯打包好的jar包放在linux伺服器上執行的時候出現一點小異常,所以決定在linux上進行一次專案編譯,這有兩個選擇 1.在相同的linux環境下安裝linux版的eclipse 進行編譯 2.在linux用javac命令列進行編譯 3.用maven,ant等專案

java命令編譯class檔案及打包jar

編譯: cmd = "javac -classpath /I:/apache-tomcat-7.0.34/webapps/project/WEB-INF/classes/../temp/com/hongshao/classpath.jar -d /I:/apache-tomc

cmd命令編譯JAVA程式時出現“找不到或無法載入主類”

檢查環境變數配置: JAVA_HOME:D:\Java\jdk1.8.0_91 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面有英文點號) Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

【程式碼重構 & JDT】Windows命令執行Java檔案陷入死迴圈解決辦法

通過修改某個Java檔案的AST節點生成n個新程式,然後用測試用例分別對這n個新程式進行執行。但是在執行過程中,發現有些新生成的新程式會陷入死迴圈的情況,後臺的java.exe一直在執行。解決方法是:設定每個程式最長執行時間為10秒,超時後,再使用命令列的形式殺掉後臺的java.exe程序。程式

命令編譯Java程式

本文介紹如何在windows系統的命令列內編譯執行一個有輸入的簡單Java程式。 示例中,輸入“Alice”,輸出“hi, Alice. How are you?” 1 新建一個文字文件,寫入如下程式碼。在 E:\program\JavaTestCode 位置另存為Hi.java檔案。

命令去除音訊檔案的背景噪聲

錄音時麥克風難免會有噪聲,就是那種嘶嘶聲,用音訊編輯軟體(比如audacity)可以很方便的去除,但如果要處理大量這種檔案,用命令列工具是更有效率的辦法。 SoX號稱音訊處理的瑞士軍刀,光manpage就40多頁,功能不可謂不強大, 通用命令格式:        sox

windows下命令執行class檔案提示“找不到或者無法載入主類”

我的jdk是jdk1.8.0_121這個版本的,配置好環境變數之後,使用javac進行沒問題,但是java 檔名的時候就提示找不到或者無法載入主類 百度搜了好久,很多人都是告訴說需要配置好classpath環境變數,但是之前看到的教程上說的是6.0以上的版本不需要配置cla

Windows命令執行java專案(程式)

由於需要,要在命令列裡執行java專案。首先電腦上得有jdk,這是必要的條件。其次,你就可以新建一個專案資料夾,比如叫做ShowTime,然後再新建一個src資料夾(只是方便管理,並不一定需要這樣),這時,就可以在裡面新建一個java檔案了。 import

命令編譯libjpeg.lib

2、解壓出來一堆檔案,開啟命令列視窗(CMD),進入程式碼所放的目錄下 3、執行命令:nmake /f makefile.vc nodebug=1 開始編譯,然後問題就來了 4、“nmake 不是內部或外部命令”      這個執行檔案在VC的安裝目錄中,解決方法:輸入命令 path C:/Program

javac命令編譯多個java檔案

export CLASSPATH=/usr/lib/jvm/java-6-sun/lib/commons-codec.jar:/usr/lib/jvm/java-6-sun/lib/commons-httpclient-3.1.jar:/usr/lib/jvm/java-6-sun/lib/commons-l

使用javac命令編譯一個目錄下的所有.java檔案

使用javac命令列如何編譯一個目錄下的所有.java檔案? 參考這裡 使用javac -sourcepath src *.java不行!使用javac -sourcepath src src*.java可以!!! 總結一下! 方法一、進入原始檔夾進行編

命令工具(CMD)執行java檔案

這篇文章將講解如何用命令列工具執行java檔案 一、命令列工具的使用 在開始選單中開啟執行工具,或使用快捷鍵win+R鍵開啟,輸入cmd即可。 輸入所要執行的java檔案的地址,即檔案所在資料夾的位置,如我的java測試檔案放在F:\Softw

命令編譯執行java檔案

命令列執行java檔案時,如果有引用外部jar包,需要在編譯和執行的時候加上絕對路徑。1. ll HelloWorld.java =>  HelloWorld.java;2. javac -cp /opt/user/commons-codec-1.11.jar Hell

在cmd中java命令編譯執行多個java檔案

一.環境:1. linux2. 有兩個java類,A.java和B.java,都在同一個目錄下二.原始碼:A.javapackage com.abc; public class A { public static void test() { Syste

命令編譯執行scala檔案

使用scala命令執行scala檔案 第一步:配置環境變數,如果已經配置就忽略這個步驟啦 Windows環境下: 1.Java環境變數 JAVA_HOME = java在本機的安裝目錄  CLASSPATH = %JAVA_HOME%\lib\dt.jar;%JA