Java / Jboss 小記
TODO: 尚未整理完成
最近工作需求,需要使用 Java
這邊做一些有關 Java 雜記
常常我們配置 Eclipse 都沒有想過 Java 運作原理
藉著 GUI 操作我們也不知道它底下是怎麼跑的
雖然大學有玩過用 java -cp xxxx
來編譯一些程式
go安裝筆記&gopath環境變數設定 | 程式狂想筆記
對 classpath 只能說編譯時候可以用別的 lib(或別的class) 搭配使用
不過我發現用 Eclipse 我不知道他是怎麼執行
今天主要好好研究
Java
Java Jar 檔案衝突
【经验总结】Java利用iText实现PDF操作-技术-LittleblackOnline
最近公司 jasperreport 和 itextpdf 衝突
為了做 pdfwriter 做 setEncryption
PdfWriter.ENCRYPTION_AES_128
允許列印,編輯,複製,簽名 加密級別:128-bit-AES
PdfWriter.STANDARD_ENCRYPTION_128
允許列印,編輯,複製,簽名 加密級別:128-bit-RC4
【itext學習之路】——-(第三篇)對pdf文件進行加密和許可權設定 - IT閱讀
Java 動態載入jar和class檔案例項解析 | 程式前沿
Tomcat启动时classloader加载顺序 _Java_天乙贵人-CSDN博客
ClassLoader解决jar包冲突问题_JavaScript_Peter_K的专栏-CSDN博客
你必须知道的 17 个 Composer 最佳实践(已更新至 22 个) | PHP 技术论坛
但會遇到
java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
但用另一個 jar ,jasperreport 就會有衝突
簡單尋找衝突方式
看 Maven 對應版本(Compile Dependencies )
jasperreports » 6.1.0→ itext » 2.1.7→bcprov-jdk15on 138
itextpdf » 5.5.5→bcprov-jdk15on 1.49
依照 classpath 規則,正常 jar 檔相同 namespace 只會吃到第一個,之後讀到都會被忽略
正常解法應該要用對應版本,可以以框架為主,通常搭配的 jar 應該使用對應相同的版本會比較好
當然也有找到下面方法,但我覺得不是最好的做法
classloader解决jar冲突隔离_Java_到西伯利亚浪-CSDN博客
使用 Maven
之前也有使用 Maven 但也不是很了解
Mave教學 | Maven 初學者中文教程
但我這邊發現所有的套件都會在~/.m2
也就是說,所有的 Project 都是吃一樣的 jar 檔案
這邊真的還滿奇特
不知道他 javac 是怎麼加檔案進去
javac、classpath的编译和生成Maven工程 - 简书 備份圖
看上面這篇 classpath 可以放 Project 資料夾路徑沒編譯的 java? 有待確認…,不過應該沒錯
Java包管理的那些事4——Maven - 知乎
開發中:給大家一份Maven知識整理,希望有所幫助 - 每日頭條
因為目前公司碰的專案沒有用到 Maven和 Gradle
有機會接觸再補充
專案自動構建工具對比(Maven、Gradle、Ant) - IT閱讀
Maven 的基本概念與在 eclipse 專案實作 @ MISTECH 技術手抄本 :: 隨意窩 Xuite日誌
SpringBoot加载外部依赖 - 简书
Maven和Gradle对比 - 黄博文的地盘
Eclipse wtp Deployment Assembly « Allen’s Blog
Eclipse 相關環境設定的影響
昭佑.天翔: Eclipse Project Facet 功能
Eclipse Build Path 的理解 - IT閱讀
部屬 java
Jenkins入门(一)_运维_weixin_43112000的博客-CSDN博客
Jenkins+Java+Maven+不中断服务+自动化部署+失败自动回滚_Java_weixin_43112000的博客-CSDN博客
基于Jenkins的JAVA持续部署环境搭建 | 大专栏
Jboss
記得要設定 JBOSS_HOME
JBOSS_HOME = C:\jboss-4.0.3SP1
jsp 熱加載
jboss-eap-7.1\standalone\configuration\standalone.xml 裡面 改成 就能不用重啟jsp了
jboss 使用 eclipse 沒有 log
移除 Server 我發現 log 消失了
後來突然想到有 JBoss EAP Server 點兩下,選擇 Open Launch configuration ,然後在 VM arguments 裡最後加入 -Dorg.jboss.as.logging.per-deployment=false
參考:JBoss EAP 6.x 對於 Log4j & System.out 在 Eclipse 上 Console 顯示設定 @ MISTECH 技術手抄本 :: 痞客邦 ::
java 熱加載
使用 debug 模式就能做到熱加載
Eclipse 的 .classpath .project .settings
從數據上我們容易看出,上面描述了工程的依賴文件:
源文件的具體位置(kind=“src”)
運行的系統環境(kind=“con”)
工程的library的具體位置信息(kind=“lib”)
在每個lib的xml子節點中,有關於它的其它配置信息(例如我配置的那個"javadoc_location")
項目的輸出目錄(kind=“output”)
總體上說這個文件就是配置整個工程的運行環境。
eclipse项目中的.settings .project .classpath 个人见解_开发工具_只在朝暮间的博客-CSDN博客
除了Maven,还有一种解决jar包管理及定制的好方法 - Java开发分享 - SegmentFault 思否
Tomcat 一些事情
理解Tomcat的Classpath-常见问题以及如何解决_Java_AndyElvis的专栏-CSDN博客
struct2
這邊簡單小記,有空再補
action
spa!xxx
spa 找 xml 對照的 java
xxx 是 method
沒寫 xxx 預設是 execute
頁面傳到 jsp 會做 setXXXX,getXXX
struct2 和 spring
Eclipse 修改檔案不用重啟 Server
eclipse配置修改代码不用重启_开发工具_小白菜-CSDN博客
Eclipse 修改方法裡面的內容不用重啟專案 - IT閱讀
jboss + eclipse 如何設置才能不重啟服務就能自動編譯jsp - 开发者知识库
Java碼農清單: jboss 修改jsp ,不須重啟servers伺服器
https://tpu.thinkpower.com.tw/tpu/articleDetails/557
Eclipse Project clean
以前開發經驗都知道 Project 執行有問題
只需要按 Project → clean
有找到他是清除 class 文件
所以有些時候編譯不通過原因是沒有project->clean造成的!!!
eclipse > project > clean 是把 eclipse 編譯生成的 class 之類的文件刪除,以便以後再次編譯。 redeploy 是指把 web 重新部署到 tomcat, 這可能會把 jsp/html/css/js 之類的文件及 WEB-INF 目錄複製到 tomcat 或者是把整個項目導致成一個 war 複製到 tomcat。
eclipse中project->clean的作用是什么 - THISISPAN - 博客园
在eclipse中写JavaWeb项目时,有时候会出现代码修改了,但是执行的效果还是修改之前的,这时候clean一下就会解决问题
1.clean操作
Project—->clean—>选择需要clean的项目
2.clean原理
eclipse为了提高效率,并不是每次启动项目都会检查插件,通过clean就是强制eclipse去检查已安装插件。
我们都知道.java文件是通过编译成.class文件运行的,而clean后会删除已经编译生成的.class文件并重新部署项目。
总起来将就是强制检查已安装插件,清除以前编译的信息,重新部署项目。3.clean后无法正常运行
右键项目—->properties如图,去掉Abort build when build path errors occur
eclipse中的clean操作 - debugger.wiki - debugger.wiki
發現還有 Deployment Assembly
java Build path是編譯路徑設置,主要用來設置源代碼的編譯路徑默認是default output folder
Web Deployment Assembly是eclipse中的發布路徑設置,DeployPath表示每個資源發佈之後的文件路徑
理解
eclipse中使用tomcat使用啟動web項目的流程是 java build path編譯項目源代碼生成的class文件放到buildpath的設置路徑中,根據web deployment assembly將項目中的各個資源發佈到設置的指定文件中
eclipse中Deployment Assembly选项设置说明_开发工具_我的世界,真实可见 -CSDN博客
這樣我就突然想到之前專案設錯 Deployment Assembly 就不能執行
不是 Web 專案是沒有 Deployment Assembly
eclipse 設定編譯出位置 .class path
應該是相同路徑
主要看.classpath
|
|
其他相關
Path to .class file in eclipse - Stack Overflow
在eclipse中使用Gradle之修改default output folder « Jason’s Blog
Eclipse 看 Properties 會亂碼
安裝 PropertiesEditor 就能正常
可參考下面連結
Eclipse Properties 顯示中文字 | Xuan’s Blog
eclipse中 XXXX.properties文件 不显示中文,显示的unicode编码。_开发工具_mukvintt的博客-CSDN博客
Eclipse 實用快速鍵
重構
Alt+Shift+R
: 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節省很多勞動力)
Alt+Shift+M
: 抽取方法 (這是重構裡面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
Alt+Shift+C
: 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定)
Alt+Shift+L
: 抽取本地變量( 可以直接把一些魔法數字和字符串抽取成一個變量,尤其是多處調用的時候)
Alt+Shift+F
: 把Class中的local變量變為field變量 (比較實用的功能)
Alt+Shift+I
: 合併變量(可能這樣說有點不妥Inline)
Alt+Shift+V
: 移動函數和變量(不怎麼常用)
Alt+Shift+Z
: 重構的後悔藥(Undo)
參考: Eclipse使用技巧
vscode 使用 web 方案
先說明我目前用到的專案
.classpath 底下有設定這些
|
|
看到 add classpath 有設定一些專案旁的 Project
vscode 吃的到 .classpath 檔案
但 vscode 單讀開 Project 不會吃到的樣子
有找到下面的方法 java.project.referencedLibraries
但還是沒用
vscode 載入 jar 檔方法
|
|
Maven Support, Java Package, and Dependency Management in Visual Studio Code
In case VS Code throws an error for a classpath issue, try setting your classpath manually by either setting the CLASSPATH environment variable or editing the .classpath file with the path to the JAR file:
看樣子 maven 不能設定 classpath
相關連結
Maven管理的jar没有发布到WEB-INF/lib下的解决方案_java的涟漪-CSDN博客
(三)Java资源文件和路径相关扫盲 - 知乎
java项目中的classpath到底是什么 - 简书
java - Can I add jars to maven 2 build classpath without installing them? - Stack Overflow
沒法對 Project 做
但這個對我的專案沒什麼用
vsocde 對整個 workspace 開啟
|
|
發現對整個 workspace 開啟
程式就可以關連到 Project 程式
手動加真的太慢了
用 Eclipse 做設定會寫到 .classpath 檔案
缺點還是需要手動加
這個方法是參考[vscode] java 사용시 세팅 관련
原本我是想用 *
加入 jar 檔案
但這邊說不能這樣設定
使用單筆 jar 進去 vsocde就能順利認得 class
題外話
小記 Classpath 加 Project 時候
發步 JBOSS 時候 WEB-INF/lib/裡面會加入到剛剛加的 Project WAR 檔
add project(classpath)
A Project 包 jar 檔時候,被 B Project 引入時候,我發現 A project
intellij与eclipse默认快捷键对比 - 简书
Maven查找依赖树,解决jar包冲突问题_Java_Epic丶玖遇-CSDN博客
Jar 包依赖冲突排查思路和解决方法(logback + slf4j-log4j12) - 掘金
重新看待Jar包冲突问题及解决方案 - 簡書
ANT
[JAVA] 用Ant打包war的簡單流程 | 阿輝的零碎筆記 - 點部落