中間代碼生成器java,代碼生成器根據什麼生成中間代碼

本文目錄一覽:

java編譯中出現了Exception in thread 「main” java.lang.UnsupportedClassVersionError

     這個問題確實是由較高版本的JDK編譯的java class文件試圖在較低版本的JVM上運行產生的錯誤。

1、解決措施就是保證jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,則在命令行中分別輸入java -version和javac -version命令來查看版本是否一致。這裡假設都是1.7版本。

2、如果都一致,但還是解決不了問題,那麼你肯定不是直接在命令行中用javac來編譯的,而是用類似於eclipse、netbeans這樣的編譯器來編譯的。因為很多編譯器都自帶javac,而不是採用操作系統中的編譯器。如果你的編譯器是eclipse的話,那麼需要在項目的屬性里設置jdk版本,方法是右擊項目–properties–java compiler — Enable project specific settings –將compiler compliance level設置為1.7,也就是與jvm一致的版本(在命令行中java -version所顯示的版本)。

綜上,如果你是用編譯器來編譯的話,請首先確保編譯器自帶的jdk版本是否和操作系統中的java版本一致。

見下圖:

java代碼生成器怎麼用

zip包,然後自動下載下來

1.預先定義好模板

2.界面輸入相關參數

3.解析模板生成代碼並下載

最後放出源代碼:

package com.et.controller.system.createcode;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.et.controller.base.BaseController;

import com.et.util.DelAllFile;

import com.et.util.FileDownload;

import com.et.util.FileZip;

import com.et.util.Freemarker;

import com.et.util.PageData;

import com.et.util.PathUtil;

/**

* 類名稱:FreemarkerController

* 創建人:Harries

* 創建時間:2015年1月12日

* @version

*/

@Controller

@RequestMapping(value=」/createCode」)

public class CreateCodeController extends BaseController {

/**

* 生成代碼

*/

@RequestMapping(value=」/proCode」)

public void proCode(HttpServletResponse response) throws Exception{

PageData pd = new PageData();

pd = this.getPageData();

/* ============================================================================================= */

String packageName = pd.getString(「packageName」); //包名 ========1

String objectName = pd.getString(「objectName」); //類名 ========2

String tabletop = pd.getString(「tabletop」); //表前綴 ========3

tabletop = null == tabletop?」」:tabletop.toUpperCase(); //表前綴轉大寫

String zindext = pd.getString(「zindex」); //屬性總數

int zindex = 0;

if(null != zindext !」」.equals(zindext)){

zindex = Integer.parseInt(zindext);

}

ListString[] fieldList = new ArrayListString[](); //屬性集合 ========4

for(int i=0; i zindex; i++){

fieldList.add(pd.getString(「field」+i).split(「,fh,」)); //屬性放到集合裡面

}

MapString,Object root = new HashMapString,Object(); //創建數據模型

root.put(「fieldList」, fieldList);

root.put(「packageName」, packageName); //包名

root.put(「objectName」, objectName); //類名

root.put(「objectNameLower」, objectName.toLowerCase()); //類名(全小寫)

root.put(「objectNameUpper」, objectName.toUpperCase()); //類名(全大寫)

root.put(「tabletop」, tabletop); //表前綴

root.put(「nowDate」, new Date()); //當前日期

DelAllFile.delFolder(PathUtil.getClasspath()+」admin/ftl」); //生成代碼前,先清空之前生成的代碼

/* ============================================================================================= */

String filePath = 「admin/ftl/code/」; //存放路徑

String ftlPath = 「createCode」; //ftl路徑

/*生成controller*/

Freemarker.printFile(「controllerTemplate.ftl」, root, 「controller/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Controller.java」, filePath, ftlPath);

/*生成service*/

Freemarker.printFile(「serviceTemplate.ftl」, root, 「service/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Service.java」, filePath, ftlPath);

/*生成mybatis xml*/

Freemarker.printFile(「mapperMysqlTemplate.ftl」, root, 「mybatis_mysql/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);

Freemarker.printFile(「mapperOracleTemplate.ftl」, root, 「mybatis_oracle/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);

/*生成SQL腳本*/

Freemarker.printFile(「mysql_SQL_Template.ftl」, root, 「mysql資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);

Freemarker.printFile(「oracle_SQL_Template.ftl」, root, 「oracle資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);

/*生成jsp頁面*/

Freemarker.printFile(「jsp_list_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_list.jsp」, filePath, ftlPath);

Freemarker.printFile(「jsp_edit_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_edit.jsp」, filePath, ftlPath);

/*生成說明文檔*/

Freemarker.printFile(「docTemplate.ftl」, root, 「說明.doc」, filePath, ftlPath);

//this.print(「oracle_SQL_Template.ftl」, root); 控制台列印

/*生成的全部代碼壓縮成zip文件*/

FileZip.zip(PathUtil.getClasspath()+」admin/ftl/code」, PathUtil.getClasspath()+」admin/ftl/code.zip」);

/*下載代碼*/

FileDownload.fileDownload(response, PathUtil.getClasspath()+」admin/ftl/code.zip」, 「code.zip」);

}

}

java編譯器的作用是什麼

java編譯器的作用就是「編譯」,即 將java源代碼編譯成中間代碼位元組碼文件。

編譯時,編譯器(java.exe)首先讀入 java 源代碼,然後進行語法檢查,如果出現問題就終止編譯。語法檢查通過後,生成中間代碼即位元組碼。

位元組碼文件是一種和任何具體機器環境及操作系統環境無關的中間代碼,它是一種二進位文件,是Java源文件由Java編譯器編譯後生成的目標代碼文件。

編譯器編譯生成與平台無關的位元組碼文件後,提供給 JVM (Java虛擬機)執行。

java代碼生成器用途

主要功能: 你只要設計好資料庫 就可以生成java vo

java DAO jsp

servlet

struts-config配置信息

oracle 建表語句 查詢語句 等

可生成java struts 架構的完整的源碼 包括 增加 刪除 修改 查詢等功能的源碼

1.不同的架構,需要不同的生成器

2.生成器一般需要模板技術,如freeMarker、velocity等

3.生成器也是Java項目,可以自己修改、設計、開發

4.生成器能節省一定的工作量

學這個? 網上都有現成的軟體,會用就行,使用很簡單。 如果是想學開發一個代碼生成器的話,我覺得沒必要啊。

你把JAVA 語言學會了,真正在開發的時候自然會遇見這個軟體,自然就會了

原創文章,作者:UZIC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143480.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UZIC的頭像UZIC
上一篇 2024-10-22 23:33
下一篇 2024-10-22 23:33

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論