I need to extract all hard coded Strings
values from all Java
files in a Java project
Into a Java Constant file
for example
Input
// Java file number 1
public class A {
public static void main(String[] args) {
System.out.println("HardCoded String A");
}
}
// Java file number 2
public class B {
public static void main(String[] args) {
System.out.println("HardCoded String B");
}
}
Output
// a Java Constant file
public class MyConstants {
public static final String HardCodedString_01 = "HardCoded String A";
public static final String HardCodedString_02 = "HardCoded String B";
}
// Java file number 1
public class A {
public static void main(String[] args) {
System.out.println(MyConstants.HardCodedString_01);
}
}
// Java file number 2
public class B {
public static void main(String[] args) {
System.out.println(MyConstants.HardCodedString_01);
}
}
I am aware of Externalize Strings for Eclipse
BUT it works over one file not all files
And when i check this post
Extract all string from a java project
I could not find the link of provided presentation
Also i check this post
Externalize strings for Android project
But that is provided for Android
projects not Java
projects
I'm guessing you have a large project, and don't necessarily want to hunt your hard-coded strings.
While Eclipse's "Externalize String" won't do all files in one go, if you go to context of your project (by right-clicking the project or your source directory), it should find all of your candidate classes. However, you'll still need to iterate through each file via a new window, but this at least gives you the list of files as verified with Kepler SR1.
First to inspect all hard coded Strings values from all using
Eclipse
The core idea is that
The Regular Expression
of Java hard coded String value is"*"
So
We can do that Using search by this criteria
For example
Eclipse Search Inquiry
Eclipse Search Result
Directory/Path : c:\User\XYZ\src\
Code :
Might be a over-engineered solution, but give a try to sonarqube which can give you static analysis of code and much more than just hard-coded string values.
If you are looking for a code to do that, you can try linux commandline (e.g. grep -rnw '/path/to/somewhere/' -e "pattern") solutions.