Javaでファイルを取得するパスの書き方
アップロード時にリソースファイルを取得する必要がありますファイルと処理ファイルのパス。ただし、開発プロジェクトで取得したパスとjarパッケージ作成後のパスが一致していないため、プロジェクトで取得したファイルパスが希望通りのファイルパスにならない場合があります。 (推奨チュートリアル: java チュートリアル)
1. リソース パスを取得します
String filePath = this.getClass().getResource("").getPath(); System.out.println("filePath: " + filePath);
プロジェクト開発で表示されるパス:
filePath: /home/idea/project/java_basic/selfimpr-fileupload/target/classes/com/selfimpr/fileupload/controller/
プロジェクトの jar パッケージ內(nèi)のパス:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/selfimpr-fileupload-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/selfimpr/fileupload/controller/
2. プロジェクト ファイルのコンパイル パスを取得します
String filePath = this.getClass().getResource("/").getPath(); System.out.println("filePath: " + filePath);
プロジェクト開発中に表示されるパス:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/classes/
プロジェクトの jar パッケージ內(nèi)のパス:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/selfimpr-fileupload-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/
3. プロジェクトのルート パスを取得します (1)
File files = new File(""); String filePath = files.getCanonicalPath(); System.out.println("filePath: " + filePath);
プロジェクト開発中に表示されるパス:
filePath: /home/idea/project/java_basic
プロジェクトの jar パッケージ內(nèi)のパス:
filePath: /home/idea/project/java_basic/selfimpr-fileupload/target
4. プロジェクトのルート パスを取得します (2)
String filePath = System.getProperty("user.dir"); System.out.println("filePath: " + filePath);
プロジェクト開発で示されるパス:
filePath: /home/idea/project/java_basic
プロジェクト jar パッケージ內(nèi)のパス:
filePath :/home/idea/project/java_basic/selfimpr-fileupload/target
5. 開発環(huán)境とjar環(huán)境の両方で、このメソッドで取得したプロジェクトパスを使用できます
/* 此方法,傳入?yún)?shù)為String,不能帶/ */ resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("/templates" + url); /* 此方法,傳入?yún)?shù)為String,不能帶/ */ resourceAsStream = this.getClass().getResourceAsStream("/templates" + url);
、コンパイル中であっても、jar パッケージの環(huán)境內(nèi)であっても、リソース パス內(nèi)のファイルを取得できます。
以上がJavaでファイルのパスを記述する方法の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

itertools.combinationsは、反復(fù)可能なオブジェクトから指定された數(shù)の要素を選択するすべての非反復(fù)的な組み合わせ(無関係な順序)を生成するために使用されます。その使用には、次のものが含まれます。1。繰り返しの順序を避けるために、( 'a'、 'b')、 'a'、 'c')など、リストから2つの要素の組み合わせを選択します。 2?!窤BC」や「ABD」などの文字列の3文字の組み合わせを取り、サブシーケンス生成に適しています。 3。2つの數(shù)値の合計が1 5 = 6などのターゲット値に等しい組み合わせを見つけ、ダブルループロジックを簡素化します。組み合わせと配置の違いは、順序が重要かどうかにあります。組み合わせはABとBAを同じと見なし、順列は異なると見なされます。

依存関係の指示(di)isadesignpatternwhere objectsreceivedenciesiesedternally、setter、orfieldinoffiction.2.springframeworkusessaNnotationslike@component、@service、@autowiredwithjava Basedconfi

フィクスチャは、テスト用のプリセット環(huán)境またはデータを提供するために使用される関數(shù)です。 1. @pytest.fixtureデコレータを使用して、フィクスチャを定義します。 2。テスト関數(shù)にパラメーター形式にフィクスチャを注入します。 3。降伏前にセットアップを?qū)g行してから斷片を?qū)g行します。 4。関數(shù)、モジュールなどのスコープパラメーターを介して範囲を制御します。 5.共有フィクスチャをconftest.pyに配置して、クロスファイル共有を達成し、それによってテストの保守性と再利用性を改善します。

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

thejvmenablesjavaの「writeonce、runany where "capabilitybyexcuting byteCodeThethermainComponents:1。theClassLoaderSubSystemloads、links、andinitializes.classfilesusingbootStrap、拡張、およびアプリケーションクラスローロー、

java.lang.outofmemoryerror:Javaheapspaceは、ヒープメモリが不十分であることを示しており、大きなオブジェクト、メモリリーク、ヒープ設(shè)定の処理を確認し、ヒープダンプ分析ツールを介してコードを見つけて最適化する必要があります。 2.メタスパースエラーは、過度のクラスメタデータによる動的クラスの生成またはホットデプロイメントで一般的であり、Maxmetaspacesizeは制限され、クラスの負荷を最適化する必要があります。 3. unabletoccreateNewThread System Sthoopリソースを使い果たしたため、スレッドの數(shù)を確認し、スレッドプールを使用し、スタックサイズを調(diào)整する必要があります。 4。GCOVERHEADLIMITEXCEYEDとは、GCが頻繁に発生するが、リサイクルが少なく、GCログを分析および最適化する必要があることを意味します。
