springboot+kotlin專案中Application中的main方法啟動報錯
Kotlin 小科普
這裡大家一個小科普,Kotlin
是完全相容JVM
,完全無縫支援Java
,並且在您可以在Java
和 Kotlin 來回自如的切換,所以開文就借用了官方的一句話,是 Android
中的 Swift
。就好比 Swift
一樣,在支援 Swift
新語法的時候,也支援 C
語法。但是我有意見了,因為我一接觸後,發現這是錯誤的。因為它是 Java
中的 Swift
。
Kotlin Demo
Springboot Application main 方法正確姿勢
因為 Springboot 需要啟動一個 public static
修飾的 main
方法,而 Kotlin 是取消了 static
companion object
塊 internal
模組內可見,inner
內部類。從上得到,可能覺得是這樣寫的:
@SpringBootApplication
@MapperScan(basePackages = arrayOf("com.sojson.mapper"))
open classApplication{
companion object{
fun main(args:Array<String>){
SpringApplication.run(Application::class.java,*args)
}
}
}
//測試呼叫
fun test
var strs :Array<String>?=null
Application.main(strs asArray<String>)
}
但是得到的結果是:
錯誤:在類 com.sojson.Application中找不到 main 方法,請將 main 方法定義為:
publicstaticvoid main(String[] args)
否則JavaFX應用程式類必須擴充套件javafx.application.Application
有的人可能會說Idea不是可以翻譯嗎?我也試過了。翻譯後是這樣的:
@JvmStatic fun main(args:Array<String
SpringApplication.run(Application::class.java,*args)
}
不知道為何是飄紅的。
正確的的姿勢
程式碼如下:
@SpringBootApplication
@MapperScan(basePackages = arrayOf("com.sojson.mapper"))
open classApplication{
}
/**
* 在此我表示一下,我一邊聽歌,然後一邊Coding,發現1個小時過去了,還是沒解決這個問題?一直找不到Main方法,或者說我不是static修飾的。
* 因為Kotlin取消了 static 關鍵詞。為了和Application統一級別,寫在外面,有可能有其他想法,。
*
* 在選擇啟動Application的時候,請選擇ApplicationKt,有紅X沒關係
*
* 選擇錯誤會出現如下Exception:
* 錯誤: 在類 com.sojson.Application 中找不到 main 方法, 請將 main 方法定義為:
* public static void main(String[] args)
* 否則 JavaFX 應用程式類必須擴充套件javafx.application.Application
*/
fun main(args:Array<String>){
SpringApplication.run(Application::class.java,*args)
}
配置如圖(Run Edit Configurations):
這裡有可能選擇完畢後,有顯示紅色錯誤提示,請先不用管,直接執行即可。
Kotlin TO Java 翻譯工具介紹
Intellij IDEA
自帶的 Kotlin Bytecode
,可以把你現在寫的Kotlin程式碼翻譯成 Java 程式碼。有利於你的錯誤排查。另外Intellij IDEA
你可以翻譯 Java 程式碼為 Kotlin 程式碼,大部分翻譯的都沒問題(Copy後貼上即可)。
轉自:https://www.sojson.com/blog/240.html
相關推薦
springboot+kotlin專案中Application中的main方法啟動報錯
Kotlin 小科普這裡大家一個小科普,Kotlin是完全相容JVM,完全無縫支援Java,並且在您可以在Java和 Kotlin 來回自如的切換,所以開文就借用了官方的一句話,是 Android中的 Swift。就好比 Swift一樣,在支援 Swift新語法的時候,也支援
springboot專案中多個main方法啟動問題
SpringBoot專案通過掃描整個專案查詢main方法來啟動整個web。但是當專案中含有不止一個標準main方法時,專案打包成jar包時可能無法正常啟動,找不到要啟動的main; 1 修改pom.xml檔案,用如下方式實現 修改pom.xml檔案,
在es的main方法執行報錯Caused by: java.lang.ClassNotFoundException:org.apache.logging.log4j.logger
Caused by: java.lang.ClassNotFoundException:org.apache.logging.log4j.logger 沒有解決辦法 尋求大哥幫忙 檢視maven下的jar包: 雙擊開啟logger.class 發現裡面時空白 說明jar包
CentOS6.x中vmware workstation 虛擬機器啟動報錯:Could not open /dev/vmmon
最初安裝報錯,但是介面可以開啟,可以正常安裝,但是安裝過後,啟動報錯 Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so:cannot open sh
在 Spring Boot @Configuration 註解類中使用 Mybatis 查詢資料庫啟動報錯
場景 想在 Spring Boot 啟動時使用 guava 快取,將資料庫的部分內容放入快取中,所以寫了一個 CacheConfig 類,但是在啟動過程中報錯,錯誤為: @Configuration public class CacheConfig { }
記錄一次SpringBoot打成war包部署到tomcat啟動報錯
tar oca sep localhost ring ant boot exc RoCE 啟動時,報錯信息如下: 28-Sep-2018 16:55:41.567 嚴重 [localhost-startStop-1] org.apache.catalina.core.Sta
springboot兩種讀取application中的資料的方法
pom.xml配置檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML
Eclipse中部署專案時,Tomcat啟動報錯 “Failed to start component [StandardServer[8005]]”的解決方法
【錯誤現象】SEVERE: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: F
IDEA中如何給main方法附帶引數
IDEA中如何給main方法附帶引數 一、 測試程式碼: 二、新增引數 1、在終端工具中 ①先編譯: javac Test.java ②再執行: java Test args1 args2 args3 注:引數之前用空格隔開
Sping+Struts2+Hibernate中如何用main方法例項化dao或service
demo1 public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( new Str
在parcel專案中使用ES7的async語法報錯解決方法
在parcel構建專案後,如果使用ES7的async語法時,在低版本chrome中一直報錯,原因是官方建議的使用babel-preset-env模組並沒有將所有的語法進行編譯,推薦使用transform-runtime外掛,在專案中用到哪些語法編譯哪些語法,具體
解決iview中</Input>標簽報錯的方法
html debug 分享 alt .com during ast pac CI (1)To turn it off, set vetur.validation.template: false. 這時錯誤並不會消息。 (2)在git bash中輸入yarn add -D
在vue中解決提示警告 for迴圈報錯的方法
警告 1.出現這個警告問題的時候 我們可以去main.js中在頭部新增這句話: ? 1
20180925:問題:pycharm中匯入flask-wtf失敗,報錯:module 'pip' has no attribute 'main'
前後臺頁面搭建完成,開始後臺邏輯操作。 在開始之前,根據視訊要匯入flask-wtf模組。在pycharm中匯入flask-wtf時,卻顯示報錯,錯誤最後一句提示:module 'pip' has no attribute 'main' 試圖在Termianl面
Kotlin中Fragment 控制元件初始化報錯 XXX must not be null
Android Extensions在Fragment中遇到的問題 在Fragment中使用Android Extensions來查詢使用控制元件的時候遇到該控制元件為空的異常: java.lang.IllegalStateException: rcvOrders must not b
maven web 專案中啟動報錯 Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
主要原因是maven專案裡面的jar包嗎,沒有匯入到專案中 maven web 專案中啟動報錯 Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet 錯誤描述: Java.lang.Cl
SpringBoot學習(三),兩種啟動方式-以main方法啟動和在tomcat裡啟動
sprigboot既可以直接通過main方法啟動,也可以在tomcat裡啟動,在main方法裡啟動很簡單,直接run啟動類的main方法就可以了。 在tomcat裡啟動
SpringBoot中使用 @Autowired註解 發現提示報錯
在寫註解的時候 用 @Autowired 發現ide提示報錯了 但是不要擔心, 專案執行的時候是能正常執行的, 不影響使用. 也可以把 @Autowired 註解換成 @Resource 註解 就不提示錯誤了
Eclipse中部署專案時,Tomcat啟動報錯 “Failed to start component“
你修改了tomcat的server.xml檔案,如下 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <
springboot中使用jackson容易引起的報錯
轉載於https://blog.csdn.net/qpc672456416/article/details/81942703 可能的原因: 依賴衝突,還是依賴的版本不對 解決方法: 在springboot中是使用jackson要這樣用 依賴: <dep