AppCrawler 修改 AppCrawler 源码后,打包 jar 包,无法加载主类 com.testerhome.appcrawler.AppCrawler

土豆 · 2017年09月05日 · 最后由 feilongjiangisme 回复于 2018年11月21日 · 3137 次阅读

修改了下 appcrawler 的源码,但是打包 jar 后,提示无法加载 com.testerhome.appcrawler.AppCrawler 。想问下@seveniruby 这个 scala 项目怎么打包才是正确的,网上的方式都试过了。

打包配置如下:

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞

我也是这样。😅

sbt assembly 就可以了。sbt 类似于 gradle,不过学会它不容易。。。

我单独安装了 sbt 进行编译,结果编译出来的,jar 包只有几百 K,没有把依赖加进去,而且也提示没有主清单,但解压 Jar 包里面是有主清单文件的。另外我看了你的 build.sbt 是有填写依赖的,不知道 sbt 为什么打包不进去。

不知是否要进入 project 进行编译,但是进入这个目录编译直接就报错了,提示 sbt 文件有问题。。不清楚你工程里的 project 目录和 src 目录之间是什么样的关系

土豆 回复

应该是缺少 scala runtime 环境吧?
与 java 不同,打成 jar 包,没有 runtime 调不起来。

scala 的不是用 jvm 运行的么?百度云盘下载的思寒打包好的 Jar 包,不需要什么 scala 环境。而且 appcrawler 的主类我在 idea 下编译是可以运行的,就是打包不成功很郁闷。

土豆 回复

你打的 jar,和思寒的 jar 大小有差异吗?

发现 testerhome 的 bug:复制过长的文章标题在搜索栏进行搜索,app 闪退。
复制为内容:appium+selenium+python web 自动化 / 手机自动化 [汇总] 分享 (适合初学)

土豆 回复

runtime 加到 cp 里应该就行了。 思寒那个用 sbt 编译的 应该带上了 runtime

土豆 #10 · 2017年09月29日 Author

构建成功了,不是确实 runtime 的问题,是构建方式的问题;构建的顺序是在执行目录下;先 sbt ---》然后再输入 assembly 就可以,自动编译打包。之前是 sbt package

我这不是 mac,在 intelliIDEA 上弄好 scala 环境,导入 appcrawler 功能,总是报错。各位是怎么解决的?

[info] Reapplying settings...
[info] Set current project to AppCrawler (in build file:/Users/dengwei/Documents/amap-client/crawler/AppCrawler/AppCrawler/)
[info] Applying State transformations org.jetbrains.sbt.CreateTasks from /Users/dengwei/Library/Application Support/IntelliJIdea2016.2/Scala/launcher/sbt-structure-1.0.jar
[error] java.lang.ClassNotFoundException: org.jetbrains.sbt.CreateTasks$
[error]         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error]         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error]         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error]         at java.lang.Class.forName0(Native Method)
[error]         at java.lang.Class.forName(Class.java:348)
[error]         at sbt.internal.inc.ModuleUtilities$.getObject(ModuleUtilities.scala:20)
[error]         at sbt.BasicCommands$.$anonfun$call$5(BasicCommands.scala:187)
[error]         at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
[error]         at scala.collection.immutable.List.foreach(List.scala:389)
[error]         at scala.collection.TraversableLike.map(TraversableLike.scala:234)
[error]         at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
[error]         at scala.collection.immutable.List.map(List.scala:295)
[error]         at sbt.BasicCommands$.$anonfun$call$2(BasicCommands.scala:187)
[error]         at sbt.Command$.$anonfun$applyEffect$4(Command.scala:125)
[error]         at sbt.Command$.$anonfun$applyEffect$2(Command.scala:121)
[error]         at sbt.MainLoop$.processCommand(MainLoop.scala:121)
[error]         at sbt.MainLoop$.$anonfun$next$2(MainLoop.scala:105)
[error]         at sbt.State$$anon$1.runCmd$1(State.scala:227)
[error]         at sbt.State$$anon$1.process(State.scala:233)
[error]         at sbt.MainLoop$.$anonfun$next$1(MainLoop.scala:105)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]         at sbt.MainLoop$.next(MainLoop.scala:105)
[error]         at sbt.MainLoop$.run(MainLoop.scala:98)
[error]         at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:76)
[error]         at sbt.io.Using.apply(Using.scala:22)
[error]         at sbt.MainLoop$.runWithNewLog(MainLoop.scala:70)
[error]         at sbt.MainLoop$.runAndClearLast(MainLoop.scala:52)
[error]         at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:37)
[error]         at sbt.MainLoop$.runLogged(MainLoop.scala:29)
[error]         at sbt.StandardMain$.runManaged(Main.scala:104)
[error]         at sbt.xMain.run(Main.scala:71)
[error]         at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
土豆 #12 · 2017年10月24日 Author
dengwei729 回复

你是用的 idea 的打包编译么?用那个不行,要在控制台先 sbt ---》然后再输入 assembly 就可以。具体参考http://blog.sina.com.cn/s/blog_c3dbcdab0102w3v9.html

土豆 回复

你用 sbt assembly 打出的 jar 包能运行吗,我这运行报 NullPointerException

土豆 回复

加下您的 qq,我也是用 idea 环境编译不了。问下您是怎么解决的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册