Skip to content

Instantly share code, notes, and snippets.

@dmikurube
Created July 5, 2017 07:55
Show Gist options
  • Save dmikurube/4a490d21f825c136853343d1e146aa8f to your computer and use it in GitHub Desktop.
Save dmikurube/4a490d21f825c136853343d1e146aa8f to your computer and use it in GitHub Desktop.
repositories {
mavenCentral()
}
apply plugin: 'java'
sourceSets {
main {
java {
srcDir '.'
exclude 'Test*.java'
}
}
}
jar {
manifest {
attributes 'Main-Class': 'CheckCodeSource'
}
}
task run(type: JavaExec) {
main = project.hasProperty('main') ? project.getProperty('main') : 'CheckCodeSource'
classpath = sourceSets.main.runtimeClasspath
args 'main'
}
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;
public class CheckCodeSource {
public static void main(final String[] args) throws SecurityException {
final ProtectionDomain protectionDomain = CheckCodeSource.class.getProtectionDomain();
System.out.println(">> ProtectionDomain:");
System.out.println(protectionDomain.toString());
final CodeSource codeSource = protectionDomain.getCodeSource();
System.out.println(">> CodeSource:");
System.out.println(codeSource.toString());
final URL location = codeSource.getLocation();
System.out.println(">> Location:");
System.out.println(location.toString());
}
}
@dmikurube
Copy link
Author

Out of JAR:

$ ./gradlew run
:compileJava
:processResources UP-TO-DATE
:classes
:run
>> ProtectionDomain:
ProtectionDomain  (file:/some/workdir/CheckCodeSource/build/classes/main/ <no signer certificates>)
 sun.misc.Launcher$AppClassLoader@2a139a55
 <no principals>
 java.security.Permissions@4e25154f (
 ("java.io.FilePermission" "/some/workdir/CheckCodeSource/build/classes/main/-" "read")
 ("java.lang.RuntimePermission" "exitVM")
)


>> CodeSource:
(file:/some/workdir/CheckCodeSource/build/classes/main/ <no signer certificates>)
>> Location:
file:/some/workdir/CheckCodeSource/build/classes/main/

BUILD SUCCESSFUL

Total time: 0.821 secs

@dmikurube
Copy link
Author

Inside JAR:

$ ./gradlew jar
:compileJava
:processResources
:classes
:jar

BUILD SUCCESSFUL

Total time: 0.785 secs
$ java -jar build/libs/CheckCodeSource.jar
>> ProtectionDomain:
ProtectionDomain  (file:/some/workdir/CheckCodeSource/build/libs/CheckCodeSource.jar <no signer certificates>)
 sun.misc.Launcher$AppClassLoader@5c647e05
 <no principals>
 java.security.Permissions@42a57993 (
 ("java.lang.RuntimePermission" "exitVM")
 ("java.io.FilePermission" "/some/workdir/CheckCodeSource/build/libs/CheckCodeSource.jar" "read")
)


>> CodeSource:
(file:/some/workdir/CheckCodeSource/build/libs/CheckCodeSource.jar <no signer certificates>)
>> Location:
file:/some/workdir/CheckCodeSource/build/libs/CheckCodeSource.jar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment