我有一个JAR文件,其中包含具有敏感名称的类,理想情况下我希望阻止软件客户查看.据我了解,一个JAR文件本质上只是一个ZIP文件,其中包含一个JVM字节码文件,每个类都有相应的名称,因此没有什么可以阻止我们的客户在ZIP实用程序中打开JAR文件并读取所有名称课程.
如果没有将我们的源类重命名为"NoneOfYourBusinessClass1"等,是否有任何可用的工具可以自动模糊构建的JAR的内容而无需更改源代码?
我正在使用打包的jar在远程服务器上运行服务,问题是当我结束ssh会话时,它还会杀死包括我需要的服务在内的进程。
我大约一年前用cron脚本玩过这个游戏,但没有运气,任何指针都将不胜感激。
刘易斯
我试图编译和打包我的Java应用程序,但我在尝试指定我的本地存储库时遇到问题,我将在其中使用我的jar作为依赖项.我在'/ home/test/lib'中存储了我的应用程序所需的所有jar.我的build.gradle文件如下所示:
apply plugin:'application'
apply plugin:'java'
apply plugin:'idea'
def repositoryPath = '/home/test/lib'
repositories {
repositoryPath
}
dependencies {
"org.springframework:spring-orm:3.0.2.RELEASE"
"org.springframework:spring-context-support:3.0.2.RELEASE"
'commons-dbcp:commons-dbcp:1.4'
'org.apache.ibatis:ibatis-sqlmap:2.3.4.726'
'commons-dbutils:commons-dbutils:1.3'
'joda-time:joda-time:1.6'
'commons-lang:commons-lang:2.5'
'com.google.collections:google-collections:1.0'
}
jar {
baseName = 'testJar'
}
mainClassName = "com.some.test.testRunner"
Run Code Online (Sandbox Code Playgroud)
当我运行gradle build时,我得到"package*not exists"错误.
我的假设是gradle没有在我的lib文件夹中找到必需的外部jar.有人可以指出我在这里做错了什么.
谢谢
如何使用jar文件运行emma.我下载了emma.jar和另一个用于测试目的的jar(MySQLConnector.jar).我将两个罐放在同一个文件夹中,并试图给出这个命令
java -cp emma.jar emmarun -jar MySQLConnector.jar
Run Code Online (Sandbox Code Playgroud)
.但是我说错了
emmarun:无法从中加载Main-Class清单属性
[C:\ Documetings \管理员\桌面\罐\ MySQL的连接器的Java-5.0.8-bin.jar]
我如何解决这个问题!! ..还有其他测试代码覆盖率的方法也欢迎!!
提前致谢!!
我有一个build.xml文件,工作正常.问题是生成的jar文件,我需要在没有'ant run'的情况下运行它
我该如何运行jar文件?跑着
java -jar Main.jar main.Main
Run Code Online (Sandbox Code Playgroud)
给我:
Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/graphdb/GraphDatabaseService
Run Code Online (Sandbox Code Playgroud)
这就是我创建jar文件(build.xml)的方法:
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile= "${jar.dir}/${ant.project.name}.jar" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="compile">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir}/${conf.dir}"/>
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath" includeantruntime="false"/>
<copy todir="${build.dir}/${conf.dir}">
<fileset dir="${conf.dir}"/>
</copy>
</target>
<target name="run" >
<java fork="true" classname="${main-class}">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/${ant.project.name}.jar"/>
</classpath>
</java>
</target>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
Run Code Online (Sandbox Code Playgroud)
"ant run"任务可以正常使用这个jar.如何在没有蚂蚁的情况下运行这个项目
我有一个简单的Android应用程序,它使用我构建的JAR.在尝试生成最终存档时,我收到上述错误.导出JAR时我排除了AndroidManifest.xml.我尝试清理项目并从JAR中删除ic_launcher.png但是在尝试构建JAR时我收到了一个错误.有任何想法吗?
我在Eclipse的Blackberry Java Plug-in中创建了两个Blackberry项目,即MyProjectApp(设置为应用程序项目)和MyProjectLib(设置为Library项目).现在我创建了一个简单的MainScreen类,如下所示:
public class SampleScreen extends MainScreen {
public SampleScreen (){
RichTextField topbar = new RichTextField("hello world");
add(topbar);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我将MyProjectLib导出为Jar文件,并在MyProjectApp中添加相同的外部Jar.现在我要使用以下方法触发SampleScreen:
public class MyProjectMain extends UiApplication{
public static void main(String[] args) {
MyProjectMain theApp = new MyProjectMain();
theApp.enterEventDispatcher();
}
public LangHostMain(){
// Push a screen onto the UI stack for rendering.
pushScreen(new SampleScreen());
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误:
模块"MyProjectApp"存在验证错误.启动MyProjectApp时出错:模块"MyProjectApp"出现验证错误.
但是,如果我将SampleScreen类移动到MyProjectApp,它工作正常.导出Jar并使用它有什么问题?需要什么类型的验证?
正如话题所说,我创造了一个国际象棋游戏作为我的第一个2D游戏,但是当我尝试从中创建一个可运行的jar文件时,我得到了一个奇怪的行为,当我移动棋子时,游戏变得混乱,没有任何作用.奇怪的是,在日食中,一切都很完美.当它创建runnable jar文件时,eclipse会出现以下错误:
Resource is out of sync with the file system: '/Chess_Project/src/.DS_Store'.
Run Code Online (Sandbox Code Playgroud)
我甚至不记得在我的项目中有这样的文件所以我猜它是一个隐藏文件或一个系统文件.然后我尝试将它作为普通的Jar文件导出到eclipse并通过终端导出(顺便说一句,我是一个mac OSX狮子用户),但我在两个方面都失败了,得到了NullPointerException一些错误.我已经阅读了一些关于清单文件的内容,并试图自己编译我的代码,然后以我上面提到的每种方式导出.
我试图解决它一个星期左右,并在各种论坛寻求帮助,但没有运气.
感谢francis,我意识到问题可能来自我的代码本身.而安德鲁我的问题是"为什么我在runnable jar文件上得到一个奇怪的行为(这意味着事情不像他们应该的那样工作),而当我在eclipse中运行它时,每件事情都运行得很好?" .这是我的代码的主要类:
import java.awt.*;
import javax.swing.SwingUtilities;
import javax.swing.*;
public class MainWindowChess {
/**
*
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
JFrame f = new JFrame("Chess");
SwingUtilities.isEventDispatchThread();
f.setLayout(new BorderLayout());
f.setSize(40 * 8, 40 * 9 - 20);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);
Board b = new Board();
f.add(b);
f.setVisible(true);
System.out.println("check");
} …Run Code Online (Sandbox Code Playgroud) 我在一个文件夹中有一堆jar,为了简化类路径设置,我使用了新的(在Java 6中)类路径通配符语法:
CLASSPATH=":/$JARS/*"
这将获取$ JARS目录中的所有jar.到现在为止还挺好.
但是,在该目录中有一个jar我需要首先出现在类路径中,而通配符语法的文档声明jar的顺序是依赖于实现的,并且不能依赖它.
我想要做的是在通配符前添加我需要首先显示的一个jar:
CLASSPATH=":/$JARS/first.jar:/$JARS/*"
现在这意味着first.jar它将在类路径中出现两次,首先是显式引用,然后是通配符.这会给我带来什么问题吗?
是的,我知道我可以放入first.jar一个不同的目录来避免这个问题,但我只想说这样做会带来很多麻烦,我宁愿不必处理(我正在处理第三方产品) .
编辑:
我需要首先出现jar,因为它包含一些XML配置文件(作为资源加载),需要在另一个jar(由第三方供应商提供)中覆盖具有相同名称的XML文件.只是为了澄清,first.jar是我控制下唯一的罐子.目录中的所有其他jar都由第三方供应商提供.
我使用Eclipse Helios 3.2.2.我有一个独立的Java应用程序,需要从批处理文件运行.所以我需要将其导出为JAR.该程序使用其他一些JAR文件,如log4j.jar,javamail.jar和其他2个.当我在Eclipse中运行应用程序时,没有任何问题.但是当我将其导出为JAR并尝试运行时,我收到"NoclassDeffound错误".外部JAR不会在此版本的Eclipse中导出.在其他地方,我读到可以使用FatJar或WinRun4J插件.当我尝试安装这些插件时,我收到一个错误,即找不到该网站.这些插件是否有其他一些来源,或者在这个版本的Eclipse中还有其他一些导出方法吗?