仅有 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