1. 程式人生 > 實用技巧 >Java專案開發(一)

Java專案開發(一)

2021-01-07

Java專案開發(一)

前提是安裝配置了java環境。

我們這裡面Java專案開發不用Idea、Eclipse、MyEclipse等生成Java專案,而是我們自己建的,用編輯器編輯,從命令列角度去執行。缺點是沒有程式碼提示補全、糾錯等功能。

專案的目錄結構如下所示

這些目錄和檔案都是手動建立的:
java-project(專案根目錄)
  |--src
  |    |--main(主目錄)
  |    |    |--java(存放專案的.java檔案)
  |    |    |    |--com(包目錄)
  |    |    |    |    |--mycompany
  
| | | | | |--mypro | | | | | | |--App.java | | |--resources | | | |--application.properties | |--test(測試程式碼目錄) | | |--java(存放專案的.java檔案) | | | |--com(包目錄) | | | | |--mycompany | | | | | |--mypro
| | | | | | |--AppTest.java | | |--resources | | | |--application.properties |--libs(這裡存放可能用到第三方的jar包) |--javaproject.bat(用於執行專案的Windows指令碼檔案) |--javaproject.sh(用於執行專案的Linux指令碼檔案) |--javaproject.txt(專案說明) |--sourcefiles(一個或多個對原始檔進行列表的檔案。)

我們沒有引入第三方jar包

原始碼結構說明

其中,App.java如下所示:

這裡 com.mycompany.mypro是包名,和目錄 com\mycompany\mypro對應。

package com.mycompany.mypro;

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

其中,AppTest.java如下所示:

package com.mycompany.mypro;

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

resources目錄中可以寫專案的配置檔案,比如application.propertites,這裡由於例子太簡單,我就沒有去實現。

javaproject.bat需要將編碼格式改為ANSI或者GBK,因為在Windows下執行的指令碼。否則,執行程式時,會出現中文亂碼。

javaproject.bat如下所示:

@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0

@REM 當前指令碼檔案所在的路徑
set CurProPath=%~dp0
@REM 設定 java檔案目錄
set JavaPath=%CurProPath%src\main\java
@REM 設定 java檔案測試目錄
set JavaTestPath=%CurProPath%src\test\java
@REM 設定資源目錄
set JavaResourcePath=%JavaPath%resources
@REM 設定 class 目錄
set JavaClassPath=%CurProPath%target\classes
@REM 設定基礎包名
set GroupIdPath=\com\mycompany\mypro
set GroupId=com.mycompany.mypro
@REM 判斷 class 目錄是否存在,不存在就建立
if not exist %JavaClassPath% (
    md %JavaClassPath%
    echo %JavaClassPath% 目錄不存在,已建立該目錄!
) else (
    echo %JavaClassPath% 目錄已存在,無需建立!
)
@REM 把java目錄裡面的資原始檔 copy 到 class 目錄中
if exist %JavaResourcePath% (
    copy %JavaResourcePath%\* %JavaClassPath%
)

@setlocal

set ERROR_CODE=0

@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal

@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome

echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error

:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error

@REM ==== END VALIDATION ====

:init
set lib=.;target\classes

@REM %JAVA_HOME%\bin\javac -d target\classes -sourcepath src\java -classpath target\classes .\src\main\java\com\mycompany\mypro\App.java
@REM %JAVA_HOME%\bin\javac -d target\classes -sourcepath src\java -classpath target\classes .\src\test\java\com\mycompany\mypro\AppTest.java

@REM %JAVA_HOME%\bin\javac -d target\classes -sourcepath src\java -classpath target\classes %JavaPath%%GroupIdPath%\App.java
@REM %JAVA_HOME%\bin\javac -d target\classes -sourcepath src\java -classpath %lib% %JavaPath%%GroupIdPath%\App.java
%JAVA_HOME%\bin\javac -d target\classes -sourcepath src\java -classpath %lib% @sourcefiles

@REM %JAVA_HOME%\bin\java -classpath target\classes %GroupId%.App
%JAVA_HOME%\bin\java -classpath %lib% %GroupId%.App

exit
@pause

javaproject.sh是linux下執行的指令碼檔案,由於時間原因,我這裡沒有寫。

javaproject.txt是專案的說明檔案,隨便寫。

sourcefiles檔案是一個或多個對原始檔進行列表的檔案,如下所示:

.\src\main\java\com\mycompany\mypro\App.java
.\src\test\java\com\mycompany\mypro\AppTest.java

命令列執行指令碼檔案:

切換到該專案目錄下,javaproject.bat就在該目錄下,執行
.\javaproject.bat

結果如下圖:

新的目錄結構如下所示:

我們引入第三方jar包