Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 934207
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T20:57:41+00:00 2026-05-15T20:57:41+00:00

I’ve built a (command-line) application in Scala that I want to distribute as a

  • 0

I’ve built a (command-line) application in Scala that I want to distribute as a standalone JAR. I’m building it with sbt:

import sbt._

class Project(info: ProjectInfo) extends DefaultProject(info) with ProguardProject {
  override def parallelExecution = true      
  override def mainClass: Option[String] = // whatever

  override def libraryDependencies = Set(
    // whatever
  ) ++ super.libraryDependencies

  override def proguardOptions = List(
      "-keepclasseswithmembers public class * { public static void main(java.lang.String[]); }",
      "-dontoptimize",
      "-dontobfuscate",
      proguardKeepLimitedSerializability,
      proguardKeepAllScala,
      "-keep interface scala.ScalaObject"
  )
}

I can run my code with sbt run fine, and I can package it and run ProGuard over it (I’m not interested in obfuscating – the project is going to be open source anyway), I’m just using it to produce a standalone JAR). So, I eventually get a .min.jar file built in target/scala_2.8.0/

This is where it gets complicated. If I run this JAR, I get:

Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

Okay, I haven’t signed it.

So, I generate myself a signing key as follows:

keytool -keystore ~/.keystore -genkey -alias tom

And then, following the Java documentation, I try to sign the JAR:

jarsigner -signedjar [whatever].jar -keystore ~/.keystore target/scala_2.8.0/[whatever]-1.0.min.jar tom

It prompts me:

Enter Passphrase for keystore: 

Warning: 
The signer certificate will expire within six months.

Okay, that’s fine. Now, surely, it’ll run!

$ java -jar [whatever].jar
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

I have no idea where to begin. I’m relatively new to the Java platform.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T20:57:42+00:00Added an answer on May 15, 2026 at 8:57 pm

    I don’t think you need ProGuard and signing to produce a standalone jar. You can just pack all the classes you need and a META-INF directory with proper classpath and main class set in a zip file, rename it to jar and it should run. See this tutorial.

    Sorry, I didn’t answer your question, I just don’t understand why you want to sign your jar.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.