mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-27 13:22:27 +08:00
GP-2132: Upgrade to Java 17 source and target compatibility
This commit is contained in:
+9
-9
@@ -29,19 +29,19 @@ The following is a list of dependencies, in no particular order.
|
|||||||
This guide includes instructions for obtaining many of these at the relevant step(s).
|
This guide includes instructions for obtaining many of these at the relevant step(s).
|
||||||
You may not need all of these, depending on which portions you are building or developing.
|
You may not need all of these, depending on which portions you are building or developing.
|
||||||
#### At minimum you will need all of the following
|
#### At minimum you will need all of the following
|
||||||
* Java JDK 11 (64-bit) - Free long term support (LTS) versions of JDK 11 are provided by:
|
* Java JDK 17 (64-bit) - Free long term support (LTS) versions of JDK 17 are provided by:
|
||||||
- Adoptium Temurin
|
- Adoptium Temurin
|
||||||
- https://adoptium.net/releases.html?variant=openjdk11&jvmVariant=hotspot
|
- https://adoptium.net/temurin/releases
|
||||||
- Amazon Corretto
|
- Amazon Corretto
|
||||||
- https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html
|
- https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html
|
||||||
* Gradle 6.8+ or 7.x
|
* Gradle 7.3+
|
||||||
- https://gradle.org/releases/
|
- https://gradle.org/releases/
|
||||||
* A C/C++ compiler - We use GCC on Linux, Xcode (Clang) on macOS, and Visual Studio (2017 or later) on Windows.
|
* A C/C++ compiler - We use GCC on Linux, Xcode (Clang) on macOS, and Visual Studio (2017 or later) on Windows.
|
||||||
- https://gcc.gnu.org/
|
- https://gcc.gnu.org/
|
||||||
- https://developer.apple.com/xcode/
|
- https://developer.apple.com/xcode/
|
||||||
- https://visualstudio.microsoft.com/downloads/
|
- https://visualstudio.microsoft.com/downloads/
|
||||||
#### Optional for Development
|
#### Optional for Development
|
||||||
* Eclipse - It must support JDK 11. Eclipse 2018-12 or later should work. Other IDEs may work, but we have not tested them.
|
* Eclipse - Other IDEs may work, but we have not tested them.
|
||||||
- https://www.eclipse.org/downloads/
|
- https://www.eclipse.org/downloads/
|
||||||
#### Necessary unless a download zip snapshot of the ghidra repository is used
|
#### Necessary unless a download zip snapshot of the ghidra repository is used
|
||||||
* Git - We use the official installer on Windows. For windows you can also use the github CLI or git from with (Windows Subsystem for Linux - WSL). Most Linux distros have git in their repos. Xcode provides git on macOS. You can skip Git if you download a .zip file of the ghidra repository.
|
* Git - We use the official installer on Windows. For windows you can also use the github CLI or git from with (Windows Subsystem for Linux - WSL). Most Linux distros have git in their repos. Xcode provides git on macOS. You can skip Git if you download a .zip file of the ghidra repository.
|
||||||
@@ -72,13 +72,13 @@ If you need these offline, a reasonable course of action is to set up a developm
|
|||||||
If you're on Windows, install Git unless you will download a .zip clone of the ghidra repository. If you go the manual route
|
If you're on Windows, install Git unless you will download a .zip clone of the ghidra repository. If you go the manual route
|
||||||
many of the commands given below must be executed in Bash (Windows Subsystem for Linux (WSL), or Use git-bash or MSYS from MinGW).
|
many of the commands given below must be executed in Bash (Windows Subsystem for Linux (WSL), or Use git-bash or MSYS from MinGW).
|
||||||
|
|
||||||
Install OpenJDK 11 and make sure it's the default java.
|
Install JDK 17 and make sure it's the default java.
|
||||||
|
|
||||||
Install Eclipse.
|
Install Eclipse.
|
||||||
You can launch Eclipse with any JRE/JDK, but you'll need to ensure Eclipse knows about your JDK 11 installation.
|
You can launch Eclipse with any JRE/JDK, but you'll need to ensure Eclipse knows about your JDK 17 installation.
|
||||||
In Eclipse, select Window -> Preferences (Eclipse -> Preferences on macOS), then navigate to Java -> Installed JREs, and ensure a JDK 11 is configured.
|
In Eclipse, select Window -> Preferences (Eclipse -> Preferences on macOS), then navigate to Java -> Installed JREs, and ensure a JDK 17 is configured.
|
||||||
|
|
||||||
Install Gradle, add it to your `PATH`, and ensure it is launched using JDK 11.
|
Install Gradle, add it to your `PATH`, and ensure it is launched using JDK 17.
|
||||||
|
|
||||||
## Setup Source Repository
|
## Setup Source Repository
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ application.name=Ghidra
|
|||||||
application.version=10.2
|
application.version=10.2
|
||||||
application.release.name=DEV
|
application.release.name=DEV
|
||||||
application.layout.version=1
|
application.layout.version=1
|
||||||
application.gradle.min=6.8
|
application.gradle.min=7.3
|
||||||
application.java.min=11
|
application.java.min=17
|
||||||
application.java.max=
|
application.java.max=
|
||||||
application.java.compiler=11
|
application.java.compiler=17
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<h1>Ghidra Installation Guide</h1>
|
<h1>Ghidra Installation Guide</h1>
|
||||||
<p>
|
<p>
|
||||||
The installation information provided is effective as of Ghidra 10.1.2 and is subject to change with
|
The installation information provided is effective as of Ghidra 10.2 and is subject to change with
|
||||||
future releases.
|
future releases.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -82,16 +82,16 @@ Ghidra team if you have a specific need.</p></blockquote>
|
|||||||
</ul>
|
</ul>
|
||||||
<h3>Software</h3>
|
<h3>Software</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Java 11 64-bit Runtime and Development Kit (JDK) (see <a href="#JavaNotes">Java Notes</a>)</li>
|
<li>Java 17 64-bit Runtime and Development Kit (JDK) (see <a href="#JavaNotes">Java Notes</a>)</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Free long term support (LTS) versions of JDK 11 are provided by:</li>
|
<li>Free long term support (LTS) versions of JDK 17 are provided by:</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://adoptium.net/releases.html?variant=openjdk11&jvmVariant=hotspot">
|
<a href="https://adoptium.net/temurin/releases">
|
||||||
Adoptium Temurin</a>
|
Adoptium Temurin</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html">
|
<a href="https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html">
|
||||||
Amazon Corretto</a>
|
Amazon Corretto</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -579,12 +579,6 @@ be installed in a pre-existing Eclipse installation.</p>
|
|||||||
Language versioning and migration does not handle complex changes in the use of the context
|
Language versioning and migration does not handle complex changes in the use of the context
|
||||||
register.
|
register.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
Ghidra uses Java reflection in a manner that has been deprecated in newer versions of Java. It
|
|
||||||
is expected to see Java warnings the about illegal reflective access, especially when importing
|
|
||||||
new files. Future versions of Ghidra will address this in order to ensure compatibility with
|
|
||||||
the newest versions of Java.
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
Ghidra will not launch when its path contains a "!" character. This is to avoid issues that
|
Ghidra will not launch when its path contains a "!" character. This is to avoid issues that
|
||||||
Java's internal libraries have parsing these paths ("!" is used as a jar-separator by Java).
|
Java's internal libraries have parsing these paths ("!" is used as a jar-separator by Java).
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ of how you might be impacted.
|
|||||||
|
|
||||||
## Install
|
## Install
|
||||||
To install an official pre-built multi-platform Ghidra release:
|
To install an official pre-built multi-platform Ghidra release:
|
||||||
* Install [JDK 11 64-bit][jdk11]
|
* Install [JDK 17 64-bit][jdk17]
|
||||||
* Download a Ghidra [release file][releases]
|
* Download a Ghidra [release file][releases]
|
||||||
* Extract the Ghidra release file
|
* Extract the Ghidra release file
|
||||||
* Launch Ghidra: `./ghidraRun` (or `ghidraRun.bat` for Windows)
|
* Launch Ghidra: `./ghidraRun` (or `ghidraRun.bat` for Windows)
|
||||||
@@ -43,8 +43,8 @@ directory.
|
|||||||
To create the latest development build for your platform from this source repository:
|
To create the latest development build for your platform from this source repository:
|
||||||
|
|
||||||
##### Install build tools:
|
##### Install build tools:
|
||||||
* [JDK 11 64-bit][jdk11]
|
* [JDK 17 64-bit][jdk17]
|
||||||
* [Gradle 6.8+ or 7.x][gradle]
|
* [Gradle 7.3+][gradle]
|
||||||
* make, gcc, and g++ (Linux/macOS-only)
|
* make, gcc, and g++ (Linux/macOS-only)
|
||||||
* [Microsoft Visual Studio][vs] (Windows-only)
|
* [Microsoft Visual Studio][vs] (Windows-only)
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ source project.
|
|||||||
[devguide]: DevGuide.md
|
[devguide]: DevGuide.md
|
||||||
[career]: https://www.intelligencecareers.gov/nsa
|
[career]: https://www.intelligencecareers.gov/nsa
|
||||||
[releases]: https://github.com/NationalSecurityAgency/ghidra/releases
|
[releases]: https://github.com/NationalSecurityAgency/ghidra/releases
|
||||||
[jdk11]: https://adoptium.net/releases.html?variant=openjdk11&jvmVariant=hotspot
|
[jdk17]: https://adoptium.net/temurin/releases
|
||||||
[gradle]: https://gradle.org/releases/
|
[gradle]: https://gradle.org/releases/
|
||||||
[vs]: https://visualstudio.microsoft.com/vs/community/
|
[vs]: https://visualstudio.microsoft.com/vs/community/
|
||||||
[eclipse]: https://www.eclipse.org/downloads/packages/
|
[eclipse]: https://www.eclipse.org/downloads/packages/
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
##VERSION: 2.0
|
##VERSION: 2.0
|
||||||
.gitattributes||GHIDRA||||END|
|
.gitattributes||GHIDRA||||END|
|
||||||
.gitignore||GHIDRA||||END|
|
.gitignore||GHIDRA||||END|
|
||||||
.gitlab-ci.yml||GHIDRA||||END|
|
|
||||||
CONTRIBUTING.md||GHIDRA||||END|
|
CONTRIBUTING.md||GHIDRA||||END|
|
||||||
DISCLAIMER.md||GHIDRA||||END|
|
DISCLAIMER.md||GHIDRA||||END|
|
||||||
DebuggerDevGuide.md||GHIDRA||||END|
|
DebuggerDevGuide.md||GHIDRA||||END|
|
||||||
|
|||||||
Reference in New Issue
Block a user