首页 > 不使用任何 IDE,如何创建 java 工程并运行?

不使用任何 IDE,如何创建 java 工程并运行?

仅有 JDK 的情况下,没有任何 IDE,如何手动创建一个完整的 java 工程 (包括src目录,以及内部的包等) 并且编译和运行。
全程仅使用命令行
请答主最好假设是在 Linux 下操作。


使用maven,比如:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart 

仅仅用javac和java是不行的,你至少还需要这些工具:创建目录(mkdir),创建文件(touch),编辑文件(vim等)。

一个简易的工程目录: /src/、/target/
src目录放源代码,targer目录放.class文件
假设src目录下有 /com/test/dao ,/com/test/service,/com/test/controller 目录,入口文件App.java,你需要做的是:

javac App.java /com/test/*/*.java -d target

如果你的终端无法识别出*,那很抱歉,你只能将上面的目录全部输入完整。如果一切顺利的话:

cd target
java App

便可成功运行你的程序。
如果你照着做一遍,也会发现这一切都是毫无意义的,还不如打开IDE多敲几行代码。


你可以用脚本一气呵成,完成项目的编译,打包,部署。
详细脚本如下:

echo off
SET PROJECT_HOME=%cd%
ECHO PROJECT_HOME:"%PROJECT_HOME%"

IF [%ANTX_PROPERTY%]==[] SET ANTX_PROPERTY="C:%HOMEPATH%\antx.properties"
ECHO ANTX_PROPERTY:%ANTX_PROPERTY%

IF [%JETTY_HOME%]==[] SET JETTY_HOME=D:\alibaba\jetty-7.2.0
ECHO JETTY_HOME: "%JETTY_HOME%"

set MAVEN_OPTS=-Xms256m -Xmx512m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=128m
cd %PROJECT_HOME%

:mvn_command
ECHO.
ECHO.注意:现在的编译和部署步骤分开,需要先选择编译打包,成功后再选择启动jetty
ECHO.
ECHO 1-生成eclipse工程文件
ECHO.
ECHO 2-增量编译打包
ECHO.
ECHO 3-全量编译打包业务代码(在项目的依赖jar包升级或增量编译有错误时使用)
ECHO.
ECHO 4-全量编译所有代码(包括业务代码,测试代码,黑白名单,用于验证项目的正确性)
ECHO.
ECHO 5-启动jetty
ECHO.
ECHO 6-热部署jetty
ECHO.
ECHO 7-安装和启动httpd
ECHO.
ECHO 8-执行所有测试 
ECHO.
ECHO 9-执行子项目测试
ECHO.
ECHO 10-单独编译deploy工程(适用于修改了配置项后的编译)
ECHO.
ECHO 0-退出菜单

set /p isopt=【选择命令】
if /i "%isopt%"=="1" goto mvn_eclipse
if /i "%isopt%"=="2" goto mvn_incremental_package
if /i "%isopt%"=="3" goto mvn_full_package
if /i "%isopt%"=="4" goto mvn_compile_all
if /i "%isopt%"=="5" goto run_jetty 
if /i "%isopt%"=="6" goto run_hotswap_jetty 
if /i "%isopt%"=="7" goto httpd_service
if /i "%isopt%"=="8" goto mvn_test_all
if /i "%isopt%"=="9" goto mvn_test_project
if /i "%isopt%"=="10" goto mvn_complie_deploy
if /i "%isopt%"=="0" goto mvn_end

echo "无效选项,请选择(0-9)"
goto mvn_command

:mvn_eclipse
    ECHO.
    ECHO.
    ECHO.
    ECHO 1-第一次生成eclipse工程文件
    ECHO.
    ECHO 2-重新生成eclipse工程文件
    ECHO.
    ECHO 0-返回
    set /p eopt=【选择命令】
    if /i "%eopt%"=="1" goto mvn_eclipse_first
    if /i "%eopt%"=="2" goto mvn_eclipse_again
    goto mvn_command

:mvn_eclipse_first
    cd %PROJECT_HOME%
    echo 生成eclipse工程文件
    start /HIGH mvn install eclipse:eclipse -Dmaven.test.skip -Pskip.attach.sources -Pskip.test.resources -Denforcer.skip -Denv=release
    goto mvn_command

:mvn_eclipse_again
    cd %PROJECT_HOME%
    echo 生成eclipse工程文件
    start /HIGH mvn eclipse:clean eclipse:eclipse
    goto mvn_command

    
:mvn_incremental_package
    cd %PROJECT_HOME%    
    start /HIGH mvn install -Dmaven.test.skip -Pskip.test.resources -DuserProp=%ANTX_PROPERTY% -Dautoconfig.userProperties=%ANTX_PROPERTY%
    goto mvn_command
    

:mvn_full_package
    cd %PROJECT_HOME%
    start /HIGH mvn clean install -Dmaven.test.skip  -Pskip.test.resources -DuserProp=%ANTX_PROPERTY% -Dautoconfig.userProperties=%ANTX_PROPERTY%
    goto mvn_command
    
:mvn_compile_all
    cd %PROJECT_HOME%
    start /HIGH mvn clean install -DskipTests=true -Pskip.attach.sources -DuserProp=%ANTX_PROPERTY% -Dautoconfig.userProperties=%ANTX_PROPERTY%
    goto mvn_command
    
:run_jetty
    start /HIGH call %PROJECT_HOME%\deploy\target\web-deploy\bin\jettyctl.bat
    goto mvn_command
    
:run_hotswap_jetty
    cd %PROJECT_HOME%\bundle\war
    call mvn compile -DenableHotswap=true -DuserProp=%ANTX_PROPERTY% -Dautoconfig.userProperties=%ANTX_PROPERTY%
    start /HIGH call %PROJECT_HOME%\deploy\target\web-deploy\bin\jettyctl.bat true %PROJECT_HOME%
    goto mvn_command
    
:httpd_service
    cd %PROJECT_HOME%\deploy\target\web-deploy\bin
    start /SEPARATE call httpdService.bat
    goto mvn_command
    
:mvn_test_all
    cd %PROJECT_HOME%
    echo 开始执行测试
    start /HIGH mvn clean test
    goto mvn_command
    
:mvn_test_project
    set /p subprj=【输入项目路径】
    echo %PROJECT_HOME%\%subprj%
    cd %PROJECT_HOME%\%subprj%
    start /HIGH mvn test
    goto mvn_command    
    
:mvn_complie_deploy
    cd %PROJECT_HOME%\deploy    
    start /HIGH mvn install -Dmaven.test.skip -Pskip.test.resources -DuserProp=%ANTX_PROPERTY% -Dautoconfig.userProperties=%ANTX_PROPERTY%
    goto mvn_command
    
:mvn_end
cd %PROJECT_HOME%

上述脚本程序,保存为.bat文件,双击启动。效果图如下所示:启动一个项目,必须执行步骤:3.编译.java文件为.class文件。5.将*.class文件加载到jetty容器中启动。7.启动项目为apache 服务。项目即启动成功了。


首先你要知道java工程需要哪些目录,然后自己创建就可以了啊。IDE只不过是帮你快速生成了一些java工程所需的目录和文件而已。


哈哈,IDE就是助手,管理项目文件,用反射来提示调用的东西,还有很多

一切东西都可以手动完成


建议用eclipes先建个项目,然后去看源文件,照着建文件夹,建文件。
编译用javac命令,运行用java命令


We have to create only the src directory. (Because I am working on Windows, here is the win-syntax - translate to your shell):

# in Win
md src
# in Linux
mkdir src

The following simple Java class just prints a fixed message out to STDOUT, so just write this code into srcoataHelloWorld.java.

package oata;

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

Now just try to compile and run that:

# in Win
md build\classes
# in Linux
mkdir -p ./build/classes

javac -sourcepath src -d build\classes src\oata\HelloWorld.java
java -cp build\classes oata.HelloWorld

which will result in

Hello World
【热门文章】
【热门文章】