手机java程序在安装jar文件时提示(jar文件已损坏)怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机java程序在安装jar文件时提示(jar文件已损坏)怎么解决相关的知识,希望对你有一定的参考价值。

网上下了7个java的手机应用软件(我的手机是支持java安装的) 通过数据线复制到内存卡了(全部是jar软件) 用java安装时 出现以下提示:应用的程序(jar)已损坏,META-INF/MANIFEST.MF不可读,联系应用提供商以获取更多信息

楼主你好,由于java平台应用的jar软件的文件是可以通过辅助软件来修改里面的数据,可能你下载的jar软件里面的软件可能被修改过,造成文件流失或损坏,还有就是可能手机的java平台的歉容性也有一定的问题,建议你去正规网站下载,选择对应的机行来下载,应为有些java应用平台比较低,不能运行大文件的jar软件。。希望可以帮到你,希望采纳,谢谢。。 参考技术A 可能是你把手机里面哪个应用程序删了,不过没事的。有保修卡就去你买手机的地方要那些专业的技术人员帮你重新装上那个删除的应用程序就OK了。 参考技术B 很简单,下载过程中造成数据不全,下个UC吧,用它下载就成,如果还出现这种情况,那就取出电池重启下就成。 参考技术C 就是你下载的那个文件是损坏的。重新下一个。不要相同的网址哦 参考技术D 这个,手机支持JAVA.并不代表它什么格式和手机型

为数据库提供 Java .jar 文件?

【中文标题】为数据库提供 Java .jar 文件?【英文标题】:Supplying a database with a Java .jar file? 【发布时间】:2012-10-18 18:18:20 【问题描述】:

我想创建一个用户只需运行 .jar 文件即可运行的程序。我希望这个程序能够访问一个数据库,该数据库在程序第一次下载时预先填充了一些数据,当用户使用它时,更多的数据会添加到数据库中。

数据库应该本地存储在用户的计算机上。

对此我最好的选择是什么?我应该使用哪个数据库引擎,我必须做些什么才能使用户在安装应用程序时不必设置数据库,它将预先填充 .jar 文件?

【问题讨论】:

搜索内存数据库,您可以从 java 文件本身开始 @Reddy 不行,内存中存储的数据太多了。 @LuiggiMendoza 一定要安装吗? 看这里:***.com/questions/462923/… 【参考方案1】:

一个简单的解决方案是使用本地存储在磁盘上的嵌入式数据库(例如靠近 jar 文件)。你可以使用h2,甚至sqlite。

程序加载时会检查数据库是否存在,如果不存在,只需运行一个设置 SQL 脚本,该脚本将创建数据库结构和初始数据,否则你就可以开始了,只需执行以下操作即可创建你的应用程序是为了做。

这是一个非常简单的 h2 数据库示例:

假设您正在 JAR 的 /resources/ 文件夹中打包一个名为 init.sql 的 SQL 文件,这将创建一个表,类似于:

create table foobar(bazz VARCHAR);
insert into foobar values('foo');
insert into foobar values('bar');
// and so on

然后在代码中的某个地方,您需要访问数据,您将尝试加载数据库或创建它(如果它尚不存在)。

Connection loadDatabase() throws Exception 
    Class.forName("org.h2.Driver");
    Connection con = null;
    try 
        // throws an exception if the database does not exists
        con = DriverManager.getConnection("jdbc:h2:./foo.db;ifexists=true");
     catch (SQLException e) 
        // if the database does not exists it will be created
        conn = DriverManager.getConnection("jdbc:h2:./foo.db");
        // init the db
        initDatabase(con);
    

    return con;


void initDatabase(Connection con) throws Exception 
    // load the init.sql script from JAR
    InputStreamReader isr = new InputStreamReader(
        getClass().getResourceAsStream("/resources/init.sql"));
    // run it on the database to create the whole structure, tables and so on
    RunScript.execute(con, isr);
    isr.close();


void doSomeStuffWithDb() throws Exception 
    Connection con = loadDatabase();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from foobar");
    // will print foo, then bar
    while (rs.next()) 
        System.out.println(rs.getString(1));
    
    rs.close();
    stmt.close();
    conn.close();

执行后,您的应用程序旁边应该有一个名为 foo.db 的文件,其中包含创建的表等。

这是一个非常简单的例子,当然你可以使用 JDBC 的任何包装器来避免使用 ResultSet 等,比如 spring jdbcTemplate,甚至加载连接实例等。

【讨论】:

SQLite 会有点棘手,因为它是本机代码。或者是否有某种预打包的跨平台部署向导? 是的,你对 SQLite 的看法是对的,我并没有真正意识到它已经安装在我的开发机器上,但是是的,如果他不想让用户参与,他应该更喜欢 h2在安装其他东西时 嘿。我有时也会遇到帮助的系统管理员在我的机器上安装软件的问题,然后我没有意识到并非无处不在!【参考方案2】:

使用Java DB,然后当用户第一次启动程序时,加载一个脚本给它。

【讨论】:

【参考方案3】:

我会调查h2。这是一个很棒的数据库,有很多持久化选项。另外,由于您使用的是 Java,因此我会考虑研究 hibernate。

【讨论】:

以上是关于手机java程序在安装jar文件时提示(jar文件已损坏)怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

使用Eclipse制作的jar文件为啥不能直接双击运行?

下载的jar软件怎样安装?高手进············

如何打包java程序

java运行jar命令提示没有主清单属性

工程中引入第三方JAR包后安装APK时老是提示找不到库文件?

如何将带包的java项目文件打包成jar