Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从scala文件创建可执行jar的问题

从scala文件创建可执行jar的问题
EN

Stack Overflow用户
提问于 2010-07-20 23:45:49
回答 2查看 3.8K关注 0票数 4

我试着用IntelliJ 9.0作为一个jar输出我的项目。我的项目在Intellij中编译和运行没有问题,但是当我将它写入.jar并打开它时,它将显示一个错误。

我的主要课程是:

代码语言:javascript
运行
AI代码解释
复制
package Main

//Imports

object Main{
  def main(args: Array[String]) {
    println("Main: Hello, world!")
    //do stuff
}

现在,在工件窗口中,我使用以下内容创建了一个.jar:

  1. 主要Clas:Main.Main
  2. 类路径:lib/javacsv lib/scala-compiler.jar lib/scala-library.jar lib/scalatest-1.0-test.jar lib/scalatest-1.0.jar lib/tools.jar lib/jtds-1.2.2.jar lib/flex-messaging-common.jar lib/flex-messaging-core.jar lib/spring.jar lib/mysql-connector-java-5.1.7-bin.jar lib/ojdbc14.jar lib/commons-logging.jar lib/postgresql-8.4-701.jdbc3.jar lib/log4j-1.2.15.jar lib/poi-3.6-20091214.jar lib/poi-ooxml-3.6-20091214.jar lib/dom4j-1.6.1.jar lib/poi-ooxml-schemas-3.6-20091214.jar lib/geronimo-stax-api_1.0_spec-1.0.jar lib/xmlbeans-2.3.0.jar lib/rt.jar lib/ifxjdbc.jar lib/db2jcc4.jar

我已经检查了所有这些类是否都在项目中,并且都是项目中唯一的类。注意,它包含lib/scala-compiler.jarlib/scala-library.jar

构建项目:java -jar myScalaApp.jar和我得到:

代码语言:javascript
运行
AI代码解释
复制
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:288)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    at Main.Main.main(Main.scala)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:288)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    ... 13 more

我知道它没有找到scala类,但我确保了它们的存在。还能有什么问题,我该怎么解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-20 23:57:55

我想说的是,有两件事出了问题:

  • scala-library.jar不在你的罐子里;或者
  • 运行时的类路径不包括scala-library.jar

我不知道IntelliJ是如何构建您的jar的:它是将所有的库jar解压到一起,并将它们与您的代码一起发送到一个大jar中,还是将库jar添加到您的大jar中,并操作类路径以获取jar中的jar?

第一点很容易检查:要么使用jar -tvf yourJar.jar列出jar的内容,要么使用存档查看器以图形方式查看它。请注意,.jar基本上是一个.zip,因此您可以重命名扩展名,然后使用一个可以查看.zip文件的工具。

刚刚对第二部分有了一个想法:您能构建一个打印出System.getProperty("java.class.path")的简单Java类吗?即使Scala类不能运行,Java类也应该能够在该jar中运行。

票数 5
EN

Stack Overflow用户

发布于 2011-03-17 03:59:06

至少有三种方法可以做到这一点。(适用于Netbeans,但也应在理念上进行工作)

  • 使用扎贾尔作为解释这里
  • 此页上使用这种思想(不太优雅,但最简单)--从Scala . jar中解压scala目录,并将这个目录添加到jar中。
  • 此页上使用这个思想(对于NB) --实际上是在项目库中添加“scala.for”。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3297188

复制
相关文章
SpringBoot 创建可执行Jar
  我们也可以通过插件创建一个在生产环境中运行的可执行jar文件来完成我们的示例。
2019/02/21
1K0
SpringBoot 创建可执行Jar
maven打包可执行jar文件运行报错
项目中同时依赖了Spring和MyBatis,并使用mybatis-spring集成MyBatis和Spring。 使用maven打包为可执行jar文件运行,打包插件为:maven-shade-plugin。
编程随笔
2019/09/11
2.2K0
Intellij idea打带Manifest文件的jar包(可执行jar包)
老版本Intellij idea可以很方便地打带Manifest文件的jar包,也就是可行性的Jar包。今天使用新版的Intellij idea打jar包时遇到了坑,jar包中竟然没有MANIFEST文件。
程裕强
2019/05/27
4.8K0
Spring Boot Maven 打包可执行Jar文件!
Maven pom.xml 必须包含 [plain] view plain copy <packaging>jar</packaging>   [html] view plain copy <build>   <plugins>   <plugin>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-maven-plugin</artifactId>   <configuration>   <fo
庞小明
2018/07/06
9640
【Maven】maven打包生成可执行jar文件
maven默认打包生成的jar是不能够直接运行的,因为在jar文件的META-INF/MANIFEST.MF文中没有Main-Class一行,为了生成可执行的jar文件,需要借助maven的插件,maven-shade-plugin,配置该插件如下:
全栈程序员站长
2022/09/01
1K0
Java -jar参数详解:掌握Java可执行JAR文件的运行技巧
作为一种常用的开发语言,Java经常使用可执行的JAR(Java Archive)文件来打包和分发应用程序。使用java -jar命令运行JAR文件是一种方便快捷的方式。本文将详细介绍java -jar命令的各种参数,帮助您充分利用这个功能。
修己xj
2023/08/25
3.7K0
Java -jar参数详解:掌握Java可执行JAR文件的运行技巧
包和 jar 文件的创建
在之前的文章中,讲到了面向的 3 大特性(封装、继承、多态)和面向对象设计的 5 大原则(SRP、OCP、LSP、DIP、ISP)。此外,我们还讲了如何创建一个类,并且在创建类后如何构造一个对象。然后还介绍了类中的属性和方法,并对构造方法和引用也做了简单的讲解。
村雨遥
2022/10/28
9110
包和 jar 文件的创建
制作可自运行的jar可执行文件
今天看到有人把Java的jar包制作成一个可执行文件,于是乎我也试了一把,确实也挺简单的,记录一下。
kongxx
2018/11/09
1.5K0
Maven编译可执行jar包
文章目录 拷贝lib的jar,配置可执行main函数 拷贝lib的jar <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goa
白凡
2018/08/07
8790
Intellij 打可执行jar包
如题,想使用Intellij 打可执行jar包,在网上搜索了很多解决方案,不是很麻烦就是尝试失败。其实,可执行的jar包无非是在MAINFEST.MF多一个配置项而已。那么用最直接的解决方法即可。
程序新视界
2022/05/06
5640
SpringBoot系列-- jar可执行原理
文章篇幅较长,但是包含了SpringBoot 可执行jar包从头到尾的原理,请读者耐心观看。
田维常
2020/02/13
9420
Linux下创建可执行bin安装文件
1、简化操作。一般的软件安装过程,如果想要精简步骤,我们一般会将需要在命令行中输入的命令写成一个脚本,同时将安装介质准备好。我们将脚本和安装介质上传到生产环境,然后通过执行脚本来完成安装。如果能够将这两个文件合并为一个可执行文件,那安装的过程就更简单明了。
大江小浪
2018/07/24
9.2K0
Linux下创建可执行bin安装文件
使用Intellij Idea生成可执行文件jar,开关exe文件步骤
步骤一:打开File -> Project Structure -> Artifacts,例如以下图
全栈程序员站长
2022/07/05
1.3K0
使用Intellij Idea生成可执行文件jar,开关exe文件步骤
【IntelliJ IDEA】导出可执行 JAR 包
选择 " 菜单栏 / File / New / Project " 选项 , 创建新应用 ,
韩曙亮
2023/03/29
3.9K0
【IntelliJ IDEA】导出可执行 JAR 包
解决maven下载的jar文件乱码问题
1.修改Eclipse中文本文件的默认编码:windows->Preferences->general->Workspace->Text file encoding设置为UTF-8 image.png
用户1437675
2020/05/18
8180
解决maven下载的jar文件乱码问题
Maven 生成打包可执行jar包
最近IDEA打可执行Jar包搞了三天,一直失败,好好学习一下Maven-assembly,在此记录一下
全栈程序员站长
2022/09/02
2.3K1
如何将Spring Boot应用程序打包为可执行的jar文件?
🏆本文收录于 《Spring Boot从入门到精通》 ,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。
bug菌
2023/10/15
2.6K0
如何将Spring Boot应用程序打包为可执行的jar文件?
从源代码到可执行文件
在理解一个源代码是如何成为可执行文件时,我简单的回顾下硬件层面、操作系统层面的知识。
全栈程序员站长
2022/07/15
3270
springBoot 怎么利用maven 创建可以执行的jar文件?
1 为了可以使用maven 创建可执行的jar文件 ,首先需要再pom.xml 加入如下的依赖。
爱明依
2019/03/12
1K0
Linux系统创建可执行文件软链接
由于创建软链接这个事情,在算法开发的日常中使用到的并不是很多,因此本文也是做一个简单的回顾。这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。
DechinPhy
2022/05/09
2.8K0

相似问题

scala :从scala文件创建jar

10

从Scala文件创建jar文件

94

创建可执行jar文件时遇到的问题

10

Scala,jar文件的问题

21

从jar创建可执行文件

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文