「Log4j 2に脆弱性があるらしい、バージョンアップしたら治るらしい。」 本日話題のこのテーマで軽く書いておきます。 未完です。 未完公開の言い訳。更新した内容は最後に書いてます。大きな間違いは(今のとこ)ないので、よかった。 2021-12-20追記: 2.17.0 出てますのでコピペしてそのままにせず適宜読み替えてくださいね。 とにかくバージョンを上げよう ……リリースできるかは別の話として。 バージョンを上げられないことには話になりません。ということでとにかくあげましょう。 Log4j 2のようなログライブラリは多くのプロダクトで使用されています。 意識する/しないに関わらず、ログライブラリは何かしら関連があると思うべきでしょう。 使用しているかの調べ方 常時依存ライブラリリストを出力するなどして管理しているのであればそれを見ればいいだけの話ですが、そうでなければ、 mvn dep
はじめに 2011年に書いた良いコードを書く技術を増補改訂して出版しました。 Amazon | Rakutenブックス | honto | ヨドバシ.com | Gihyo Direct 10年ぶりに書籍を技術書を改定するという貴重な体験をさせていただいたので、執筆の中で気がついたことをご紹介します。 ちなみに初版を執筆した10年前はこんな世界です😳 VS Codeは存在せず、みんな秀丸やEmacs、vim、Eclipseでコードを書いていた Java 7が出てたけど、Java 8まではあと3年待たないと行けない TypeScriptもGo言語もSwiftもリリースされていない AWSの東京リージョンができたばかりでクラウドって何?って世界 GitはまだマイナーでSubversionでバージョン管理している人が多かった Dockerはまだない、VirtualBoxやVMwareを使ってた
概要 IntteliJ IDEAで、Mavenプロジェクトのtestフェーズをデバッグ実行した場合に、ブレークポイントで止まってくれない(ステップ実行ができない)現象に遭遇した。 Mavenはデフォルトだとテストが別の(forkした)プロセスで実行されるため、IDEAがテストの実行プロセスを捕まえられないようだ。 実行時に -DforkCount=0 オプションをつけるとデバッグできるようになる。 $ mvn -DforkCount=0 test 補足 Maven Surefire Plugin の maven.surefire.debug プロパティを使えば、リモートデバッグの要領でforkしたプロセスでもデバッグはできるよう。 ただテストをデバッグしたいのって、IDEで開発中のことがほとんどだろうし、いっそforkさせないようにした方が楽と思われる。 forkMode=never とい
2019/6/25に行われたJavaコミュ@福岡での登壇資料です
無償のエディタであるVisual Studio Codeの拡張機能として、AIがコーディングをAIが支援してくれる「Visual Studio IntelliCode」(以下IntelliCode)が、Javaに対応したと発表されました。 IntelliCodeはコードの入力や補完において、もっとも適切と思われるコードをコンテキストに即してレコメンデーションをしてくれるというもの。さらにコードレビュー時のアドバイス、問題がありそうな部分の指摘や、コードスタイルと書式の規則の推測もしてくれます。 これまでC#とPythonに対応していましたが、今回新しくJavaにも対応しました。 AI機能はGitHubで100以上スターが付いているオープンソースプロジェクトのコードを用い、コードのパターンやプラクティスなどに関する機械学習が行われたと説明されています。 これによりJava SEやSpring
マルチプラットフォーム(ubuntu、RHEL、Windows、MacOS)対応のLTSがついたOpenJDK互換のJavaリリースのアナウンスです! しばらく前に、Amazon LinuxでのJavaのLTSが発表され大きな話題となりました。 Amazon LinuxでのJavaのLTS (Long-Term Support)提供について 「ほぇー、AWSもやりおるやんけ!!」と感慨にふけっていたら、それの100倍ぐらい衝撃的なニュースが、Javaの神様James Goslingのツイートで飛び込んできました。 Just announced #amazon #Corretto at #devoxx. It is our distribution of OpenJDK. https://t.co/09cuPEqnex — James Gosling (@errcraft) 2018年11月
Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018 米オラクルがOracle OpenWorld 2018と同時開催していたイベント「Oracle CodeOne 2018」は、昨年までJavaOneとして開催されていたイベントです。今年から「CodeOne」と名称が変わりました。 このイベントがJavaデベロッパーにとって最大のイベントであることに変わりはありません。初日の基調講演は「 The Future of Java Is Today」としてJavaの最新動向と今後が紹介されました。その内容をダイジェストで紹介しましょう。 Javaが迎えた変化の理由とは Javaと言えばこの人。米オラクルJava Platform Groupチーフアーキテクト Mark Reinhold氏
少しハマったので 参考 前提条件 IntelliJのバージョンが古いと対応していない場合があるので、最新にアップデートしておく →これにハマりました 手順 ほとんど 参考URL の通りです。 1. IntelliJで対象プロジェクトを開く。 2. COMMAND + SHIFT + A(多分、windowsだと、CTRL + SHIFT + A)キー入力後、「build project automatically」と入力して、[build project automatically]を選択。 3. [preference] -> [build project automatically]にチェックを入れて、OKする 4. COMMAND + SHIFT + A(多分、windowsだと、CTRL + SHIFT + A)キー入力後、「Registry」と入力して、[Registry...]
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TL;DR Lombok が Java9 + IntelliJ に対応してなかったので、修正プルリク送って取り込んでもらった(AUTHORSに自分の名前が入った) どういう変更をしたのかを解説(誰得) Lombok は JDK の内部クラスにどっぷり依存しているので、JDKバージョンアップの度に追従が大変。JDKだけじゃなくてIDEの実装にも依存がある。 今後 JDK のライフサイクルが変わるのでさらに大変。追従が遅れる可能性は多分にある。 がっつり Lombok に依存するとそういうリスクがあることを意識しておいたほうがいい。 Lom
今回は色のカスタマイズ (Custom colors) です(一覧)。 Java コード 色のカスタマイズの仕方は HSSF と XSSF とでかなり違うようです。 まずは HSSF の方から。 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFRow row = sheet.createRow((short) 0); HSSFCell cell = row.createCell((short) 0); cell.setCellValue("Default Palette"); //apply some colors from the standard palette, // as in the previous examples. //we'll use red text on a
9月の頭くらいに、Javaのリリースモデルが6ヶ月ごとの短期リリースになるということが発表されてました。 で、「へぇ〜」みたいな感じで見てたのですけど、JavaOneでの話を聞くと、これ結構大変なのかも、ということになってそうなので、ちょっとまとめてみます。 追記:2018年05月の状況をQiitaでまとめています。 [Javaのサポートについてのまとめ2018 - Qiita](https://qiita.com/nowokay/items/edb5c5df4dbfc4a99ffb) Javaの新しいリリースモデル 公式情報はこちらにまとめられています。(10/4にアップデートされてます) http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html ざっくり言えば、6ヶ月ごとに機能リリースを行い、3ヶ月ごとにメンテナンス/セキ
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Test { public static void main(String[] args) throws IOException { Path source = Paths.get("c:/temp/0multipage.tif"); System.out.println(Files.probeContentType(source)); // output : image/tiff } } The default implementation is OS-specific and not very complete. It's possible
こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 今回、Java のちょっとしたデバッグテクニックを紹介したいと思います。Java で運用中何かトラブルが発生した場合、スレッドダンプを取得することはしばしばあると思いますが、スレッドダンプだけだとちょっと情報が足りないことがあります。今回はスレッドダンプから得られる情報を増やして、素早く障害対応したりデバッグに役立てる方法を紹介します。 まずはじめに: スレッドダンプの取り方 基本ですが、改めてスレッドダンプの取得の仕方を紹介しておきます。スレッドダンプを取得する対象のプロセス ID を仮に 12345 として、下記のように jstack コマンドを実行すればスレッドダンプが取得できます(※Linux上で操作する想定)。 $ jstack 12345 対象のプロセス ID は ps aux | grep jav
import java.util.ArrayList; import java.util.List; import org.opencv.core.*; import org.opencv.highgui.Highgui; import org.opencv.imgproc.Imgproc; public class Main { /** * 輪郭を抽出して、輪郭を囲む四角形を描画します。 */ public static void main(String[] args) { System.loadLibrary("opencv_java"); Mat src= Highgui.imread("num.png",0); Mat hierarchy=Mat.zeros(new Size(5,5), CvType.CV_8UC1); Mat invsrc=src.clone(); Core.b
PPLサマースクール2016「商用Java処理系の研究開発」のパート2です. http://ppl.jssst.or.jp/index.php?ss2016 Java言語処理系の実装について詳説する.まずJava仮想マシンの概要について述べ,その主要な構成要素として,クラス管理とインタープリタ,ヒープ管理とガベージコレクション,スレッド管理と同期機構,JITコンパイラとの連携,などについて説明する.性能改善のために行った各種手法についても触れる. 他のパート 1 Javaの登場と発展 http://www.slideshare.net/Tamiya_Onodera/java-66081108 2 Java仮想マシンの実装技術 http://www.slideshare.net/KiyokuniKawachiya/java-66003903 3 Java Just-In-Timeコンパイラの
DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String
D トラブルシューティング この付録では、Java Database Connectivity(JDBC)アプリケーションまたはアプレットのトラブルシューティングについて説明します。次の項目が含まれます。 一般的な問題 基本的なデバッグ処理 OUTまたはIN/OUT変数として定義されたCHAR列に対するメモリー消費 PL/SQLでは、CHARまたはVARCHAR列がOUTまたはIN/OUT変数として定義される場合、ドライバは32512文字のCHAR配列を割り当てます。このため、メモリー消費に関する問題が生じます。VARCHAR2列ではこのようにはなりません。 以前のリリースでは、この問題はStatement.setMaxFieldSizeメソッドをコールすることで解決できました。これよりもよい解決方法は、OracleCallableStatement.registerOutParamete
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く